Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh menghantar keseluruhan rentetan json ke medan struktur bersarang apabila unmarshalling?

Bagaimanakah saya boleh menghantar keseluruhan rentetan json ke medan struktur bersarang apabila unmarshalling?

WBOY
WBOYke hadapan
2024-02-13 10:27:10986semak imbas

如何在解组时将整个 json 字符串传递到嵌套结构的字段?

Dalam PHP, apabila kita perlu menghantar keseluruhan rentetan JSON ke medan struktur bersarang, terdapat cara mudah untuk melakukannya. Pertama, kita perlu memastikan kita telah menyahkod rentetan JSON ke dalam tatasusunan atau objek PHP. Kemudian kita boleh menggunakan fungsi json_encode() untuk mengekod tatasusunan atau objek yang dinyahkodkan ke dalam rentetan JSON sekali lagi. Seterusnya, kita boleh menetapkan rentetan JSON yang dikodkan kepada medan sasaran. Dengan cara ini, kami telah berjaya menghantar keseluruhan rentetan JSON ke medan struktur bersarang. Ini ialah kaedah yang mudah tetapi berkesan yang membolehkan kami memproses data JSON dalam PHP dengan mudah.

Kandungan soalan

Saya perlu membongkar rentetan json yang rata

data := `{"login":"Nickname","password":"some_pass","newPassword":"new_pass"}`

Masukkan UpdatePasswordRequeststruktur bersarang:

type SignInRequest struct {
    Login    string `json:"login"`
    Password string `json:"password"`
}

type UpdatePasswordRequest struct {
    NewPassword string        `json:"newPassword"`
    SignInData  SignInRequest `<tag>`
}

Gunakan semua yang mungkin 8bf259f5a6144433b921fb8b7de94970 值将 data 解组到 result

var result UpdatePasswordRequest
json.Unmarshal([]byte(data), &result)

memberi kosong LoginPassword:

result.SignInData.Login = ""
result.SignInData.Password = ""

Bagaimanakah saya harus mentakrifkan 8bf259f5a6144433b921fb8b7de94970 untuk mendapatkan nilai yang betul untuk medan 8bf259f5a6144433b921fb8b7de94970 以获得 LoginPassword 字段的正确值?

解决方法

如果您要使用 8bf259f5a6144433b921fb8b7de94970?

Penyelesaian

🎜Jika anda akan menggunakan nama 8bf259f5a6144433b921fb8b7de94970, json anda hendaklah bersarang, bukan rata, seperti ini: 🎜
data := `{"newPassword":"new_pass", "myTag":{"password":"some_pass", "login":"Nickname"}}`
🎜Jika anda tidak boleh menukar json anda, ia harus menyusun struktur (aka .struct embedding) seperti ini: 🎜
type SignInRequest struct {
    Login    string `json:"login"`
    Password string `json:"password"`
}

type UpdatePasswordRequest struct {
    NewPassword string        `json:"newPassword"`
    SignInRequest
}

Atas ialah kandungan terperinci Bagaimanakah saya boleh menghantar keseluruhan rentetan json ke medan struktur bersarang apabila unmarshalling?. 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