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

Golang: Dapatkan hanya satu objek dalam respons koleksi JSON

WBOY
Lepaskan: 2024-02-15 12:54:09
ke hadapan
420 orang telah melayarinya

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} ...]
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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"`
}
Salin selepas log masuk

Anda kemudian boleh menyahmarshal tatasusunan menggunakan:

var v mydata
json.unmarshal(input,&v)
Salin selepas log masuk

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

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

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan