Rumah >pembangunan bahagian belakang >Golang >Cara mengakses elemen struktur bersarang
PHP Editor Xigua akan memperkenalkan anda cara untuk mengakses elemen struktur bersarang. Dalam pengaturcaraan, struktur bersarang sering digunakan untuk mewakili struktur data yang kompleks, seperti tatasusunan atau objek berbilang peringkat. Untuk mengakses elemen dalam struktur bersarang kita perlu menggunakan sintaks dan kaedah yang sesuai. Artikel ini akan menerangkan secara terperinci cara mengakses dan mendapatkan elemen dalam struktur bersarang langkah demi langkah mengikut tahap, membantu pembaca lebih memahami dan memproses data struktur bersarang. Sama ada anda seorang pemula atau pembangun yang berpengalaman, artikel ini akan memberikan anda petua dan contoh praktikal untuk membantu anda menangani keperluan untuk mengakses elemen struktur bersarang dengan mudah.
Saya mempunyai struktur seperti ini. Saya mahu menghuraikan json saya ke dalam struktur ini. Tetapi saya tidak boleh mengakses struktur bersarang.
Saya harap saya boleh mencapai substruktur yang serupa, tetapi saya tidak dapat:
func main() { str := `[{ "applicationdefaults": { "applicationpoolname": "defaultapppool", .... }]` mdl := foo(str) // mdl.applicationdefaults ?? i can't reach like this. there are only a few functions like: append!, last! , print!, range!, reverse!, sort!, var! }
Ada sesiapa boleh tolong?
Struktur saya:
package model type sitesdetails []struct { applicationdefaults struct { applicationpoolname string `json:"applicationpoolname"` enabledprotocols string `json:"enabledprotocols"` attributes string `json:"attributes"` childelements string `json:"childelements"` elementtagname string `json:"elementtagname"` islocallystored bool `json:"islocallystored"` methods interface{} `json:"methods"` rawattributes string `json:"rawattributes"` schema string `json:"schema"` } `json:"applicationdefaults"` applications []string `json:"applications"` bindings []string `json:"bindings"` id int `json:"id"` limits struct { connectiontimeout string `json:"connectiontimeout"` maxbandwidth int64 `json:"maxbandwidth"` maxconnections int64 `json:"maxconnections"` maxurlsegments int `json:"maxurlsegments"` attributes string `json:"attributes"` childelements string `json:"childelements"` elementtagname string `json:"elementtagname"` islocallystored bool `json:"islocallystored"` methods interface{} `json:"methods"` rawattributes string `json:"rawattributes"` schema string `json:"schema"` } `json:"limits"` }
Ini adalah kod yang saya gunakan untuk menghuraikan json ke dalam struktur:
func foo(resp string) model.SitesDetails { data := []byte(resp) var m model.SitesDetails err := json.Unmarshal(data, &m) if err != nil { log.Fatal(err) } return m }
Anda sedang membuka slice di sini (kerana sitesdetails
类型是 []struct
anda dan json anda bermula dengan tatasusunan), jadi anda sepatutnya boleh mengakses butiran anda melalui
poolName := model[0].ApplicationDefaults.ApplicationPoolName
Ini juga menerangkan sebab IDE anda hanya mencadangkan operasi yang boleh digunakan pada kepingan, seperti tambah (yang saya rasa memasukkan kod yang betul untuk ditambahkan pada kepingan anda).
BTW, anda tidak sepatutnya memanggil pembolehubah anda model
,因为这也是你显然用于你的包的名称(你正在使用 model.sitesdetails
), jadi nama pembolehubah anda akan menyembunyikan pakej pada ketika ini - ini boleh menyebabkan kekeliruan yang besar, dan mana-mana IDE yang baik harus memberi amaran kepada anda tentang perkara ini.
Atas ialah kandungan terperinci Cara mengakses elemen struktur bersarang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!