Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Golang: Dapatkan hanya satu objek dalam respons koleksi JSON

Golang: Dapatkan hanya satu objek dalam respons koleksi JSON

WBOY
WBOYke hadapan
2024-02-15 12:54:09336semak imbas

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

editor php Banana membawakan anda pengenalan kepada keupayaan Golang untuk mendapatkan hanya satu objek dalam respons koleksi JSON. Apabila memproses data JSON, kadangkala kita hanya perlu mendapatkan satu daripada objek dan bukannya keseluruhan koleksi Dalam kes ini, kita boleh menggunakan beberapa kaedah mudah untuk mencapai ini. Artikel ini akan memperkenalkan anda secara terperinci cara menggunakan Golang untuk mencapai keperluan ini, membolehkan anda memproses data JSON dengan lebih fleksibel. Sama ada anda seorang pemula atau pembangun berpengalaman, anda boleh mendapatkan petua dan kaedah praktikal daripada artikel ini. Mari kita meneroka bersama-sama!

Kandungan soalan

Andaikan saya mempunyai badan tindak balas json seperti ini:

{
   value: [{object a's key-values}, {object b's key-values}, {object c's key-values} ...]
}

Di mana objek a, b, c mempunyai struktur yang berbeza walaupun ia mungkin mempunyai nama kunci yang sama. (cth. kedua-dua obj a dan b boleh mempunyai kunci "b", tetapi hanya obj a mempunyai kunci "a")

Saya hanya berminat dengan objek a dalam respons json, selebihnya boleh dibuang. Jika saya mempunyai struktur seperti ini:

type MyObject struct{
    a string
    b string
}

type MyData struct{
   value []MyObject
}

Adakah membongkar respons ke dalam mydata berfungsi? Bolehkah kita menentukan jenis hirisan tertentu supaya hanya elemen yang diperlukan dengan struktur yang betul tidak dikawal dan objek lain dalam koleksi json diabaikan?

Penyelesaian

Pertama: anda perlu mengeksport ahli struktur:

type myobject struct{
    a string `json:"a"`
    b string `json:"b"`
}
type mydata struct{
   value []myobject `json:"value"`
}

Anda kemudian boleh menyahmarshal tatasusunan menggunakan:

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

Ini akan mencipta myobject 实例,但只有那些具有 ab 字段的元素才会被填充。因此,您可以过滤包含 a untuk setiap elemen tatasusunan dalam input:

for _,x:=range v.Values {
   if x.A!="" {
     ///
   }
}

Atas ialah kandungan terperinci Golang: Dapatkan hanya satu objek dalam respons koleksi JSON. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam