Maison  >  Article  >  développement back-end  >  Golang : obtenez un seul objet dans la réponse de la collection JSON

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

WBOY
WBOYavant
2024-02-15 12:54:09336parcourir

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} ...]
}

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
}

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"`
}

Vous pouvez ensuite désorganiser le tableau en utilisant :

var v mydata
json.unmarshal(input,&v)

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!="" {
     ///
   }
}

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer