Désorganisation des objets imbriqués JSON sous forme de chaînes ou de tranches d'octets
Dans les données JSON, les objets imbriqués fournissent des niveaux d'informations supplémentaires. Cependant, lors de la désorganisation de ces données dans des structures Go, vous souhaiterez peut-être traiter ces objets comme des données brutes plutôt que comme des valeurs analysées.
Pour y parvenir, le package encoding/json propose une solution : json.RawMessage.
Utiliser RawMessage pour traiter les objets imbriqués comme bruts Data
json.RawMessage est un type qui représente des données JSON codées. Il permet de retarder le décodage JSON ou de précalculer un encodage JSON.
Ceci est particulièrement utile lorsque vous souhaitez gérer des objets imbriqués sous forme de chaînes ou de tranches d'octets. Voici comment vous pouvez l'utiliser :
import ( "encoding/json" "fmt" ) type Bar struct { Id int64 `json:"id"` Foo json.RawMessage `json:"foo"` } func main() { // Example JSON with a nested object jsonStr := []byte(`{ "id" : 15, "foo" : { "foo": 123, "bar": "baz" } }`) var bar Bar err := json.Unmarshal(jsonStr, &bar) if err != nil { panic(err) } fmt.Printf("%+v\n", bar) }
Exemple de sortie
{Id:15 Foo:[123 32 34 102 111 111 34 58 32 49 50 51 44 32 34 98 97 114 34 58 32 34 98 97 122 34 32 125]}
En utilisant json.RawMessage, vous pouvez traiter l'objet imbriqué comme une chaîne brute ou tranche d'octets. Cela vous permet de traiter davantage les données ou de les stocker pour une utilisation ultérieure.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!