Maison > développement back-end > Golang > le corps du texte

Golang : obtenez un seul objet dans la réponse de la collection JSON

WBOY
Libérer: 2024-02-15 12:54:09
avant
383 Les gens l'ont consulté

Golang:在 JSON 集合响应中仅获取一个对象

l'éditeur php Banana vous présente une introduction à la capacité de Golang à obtenir un seul objet dans une réponse de collection JSON. Lors du traitement des données JSON, nous n'avons parfois besoin d'obtenir qu'un seul des objets au lieu de la collection entière. Dans ce cas, nous pouvons utiliser des méthodes simples pour y parvenir. Cet article vous présentera en détail comment utiliser Golang pour répondre à cette exigence, vous permettant ainsi de traiter les données JSON de manière plus flexible. Que vous soyez débutant ou développeur expérimenté, vous pouvez obtenir des conseils et méthodes pratiques dans cet article. Explorons ensemble !

Contenu de la question

Supposons que j'ai un corps de réponse json comme celui-ci :

{
   value: [{object a's key-values}, {object b's key-values}, {object c's key-values} ...]
}
Copier après la connexion

Où les objets a, b, c ont des structures différentes bien qu'ils puissent avoir les mêmes noms de clé. (par exemple, obj a et b peuvent avoir la clé "b", mais seul obj a a la clé "a")

Je ne m'intéresse qu'à l'objet a dans la réponse json, le reste peut être ignoré. Si j'ai une structure comme celle-ci :

type MyObject struct{
    a string
    b string
}

type MyData struct{
   value []MyObject
}
Copier après la connexion

Est-ce que la désagrégation de la réponse dans mes données fonctionne ? Pouvons-nous spécifier un type spécifique de tranche afin que seuls les éléments requis avec la structure correcte ne soient pas organisés et que le reste des objets de la collection json soit ignoré ?

Solution

Première : vous devez exporter les membres de la structure :

type myobject struct{
    a string `json:"a"`
    b string `json:"b"`
}
type mydata struct{
   value []myobject `json:"value"`
}
Copier après la connexion

Vous pouvez ensuite désorganiser le tableau en utilisant :

var v mydata
json.unmarshal(input,&v)
Copier après la connexion

Cela créera un myobject 实例,但只有那些具有 ab 字段的元素才会被填充。因此,您可以过滤包含 a pour chaque élément du tableau dans l'entrée :

for _,x:=range v.Values {
   if x.A!="" {
     ///
   }
}
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal