Rumah >pembangunan bahagian belakang >Golang >Json dinamik unmarshal

Json dinamik unmarshal

王林
王林ke hadapan
2024-02-08 22:36:321087semak imbas

解组动态 json

editor php Zimo Unmarshaling dynamic JSON ialah teknik pengaturcaraan biasa yang digunakan untuk menukar data JSON kepada objek atau tatasusunan yang boleh dikendalikan. Dalam pembangunan web, JSON ialah format pertukaran data yang biasa digunakan, sering digunakan untuk penghantaran data bahagian hadapan dan belakang. Menyahmarshalling dynamic JSON memudahkan untuk mengekstrak dan memproses data di dalamnya, membolehkan pembangun memanipulasi dan menggunakan data JSON dengan lebih fleksibel. Artikel ini akan memperkenalkan konsep asas dan penggunaan JSON dinamik unmarshaling untuk membantu pembaca memahami dan menggunakan teknik ini dengan lebih baik.

Kandungan soalan

Saya mempunyai banyak fail json yang perlu dibongkar. Format mereka pada asasnya sama, tetapi "panjang" berbeza

Contohnya https://pastebin.com/htt6k658

Contoh lain https://pastebin.com/nr1z08f4

Saya mencuba beberapa cara seperti membina struktur yang serupa

type TagType struct {
    ID   int    `json:"id"`
    Name string `json:"name"`
    Slug string `json:"slug"`
    tags []Tag  `json:"tags"`
}

type Tag struct {
    ID   int    `json:"users"`
    Name string `json:"name"`
    Slug string `json:"slug"`
}

Terdapat juga antara muka, seperti json.unmarshal([]byte(empjson), &result)

Tetapi tiada kaedah ini berkesan.

Penyelesaian

Anda boleh menggunakan alatan dalam talian, seperti https://www.php.cn/link/fb25b181bed28630afa6c026a6ed31fe untuk menjana struktur go:

type AutoGenerated []struct {
    ID   int    `json:"id"`
    Name string `json:"name"`
    Slug string `json:"slug"`
    Tags []struct {
        ID   int    `json:"id"`
        Name string `json:"name"`
        Slug string `json:"slug"`
        } `json:"tags"`
    }

Atas ialah kandungan terperinci Json dinamik unmarshal. 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