Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menghuraikan pelbagai jenis jadual JSON-RPC

Cara menghuraikan pelbagai jenis jadual JSON-RPC

WBOY
WBOYke hadapan
2024-02-14 19:42:101263semak imbas

Cara menghuraikan pelbagai jenis jadual JSON-RPC

editor php Baicao memperkenalkan anda cara menghuraikan pelbagai jenis jadual JSON-RPC. JSON-RPC ialah protokol panggilan prosedur jauh ringan yang digunakan secara meluas dalam pelbagai perkhidmatan web. Apabila menghuraikan jadual JSON-RPC, kita perlu memberi perhatian kepada pelbagai jenis struktur jadual dan format data untuk memastikan data dihuraikan dan diproses dengan betul. Artikel ini akan memperkenalkan jenis jadual JSON-RPC biasa, termasuk jadual tunggal, jadual bersarang dan jadual tatasusunan, serta kaedah penghuraian dan langkah berjaga-jaga yang sepadan. Dengan memahami pelbagai jenis penghuraian jadual JSON-RPC, kami boleh memproses dan menggunakan data dengan lebih baik serta meningkatkan kebolehpercayaan dan kecekapan program kami.

Kandungan soalan

Saya ingin mendapatkan maklumat dalam fail json-rpc dengan struktur berikut:

{
    "id": "foo1",
    "error": null,
    "result": [
        {
            "key": [
                "hello 1",
                1,
                "world 1"
            ],
            "val": {
                "type": "static"
            }
        },
        {
            "key": [
                "hello 2",
                1,
                "world 2"
            ],
            "val": {
                "type": "static"
            }
        }
    ]
}

Ini adalah fungsi penghuraian saya, kuncinya ialah jadual rentetan (jenis int tidak boleh diterima):

type jsonrpcrsp struct {
    id     string          `json:"id"`
    error  *string         `json:"error"`
    result json.rawmessage `json:"result"`
}

type jsonrpcentry_val struct {
    type     string          `json:"type"`
}
type jsonrpcentry struct {
    key     [3]string          `json:"key"`
    val     jsonrpcentry_val  `json:"val"`
}

jsonresult := jsonrpcrsp{}
json.unmarshal(data, &jsonresult)
entries := []jsonrpcentry{}
for _, val := range jsonresult {
    json.unmarshal(val.result, &entries)
}

Bagaimana untuk menghuraikan jadual "kunci"? ...masalahnya ada pelbagai jenis

Struktur jadual utama ialah:

[ <string>, <int>, <string>]

Penyelesaian

Untuk membongkar tatasusunan pelbagai jenis dalam perjalanan, jika anda perlu mengakses jenis, anda perlu menggunakan antara muka dan penegasan taip.

Ini mungkin berkesan untuk anda:

type Result struct {
    Key [3]interface{} `json:"key"`
    Val struct {
        Type string `json:"type"`
    } `json:"val"`
}

msg := JsonRpcRsp{}
json.Unmarshal(data, &msg)

var result []Result
json.Unmarshal(msg.Result, &result)

for _, v := range result {
    key1 := v.Key[0].(string)
    key2 := v.Key[1].(float64)
    key3 := v.Key[2].(string)

    fmt.Println(key1, key2, key3)
}

Selepas menegaskan ketiga-tiga antara muka kepada jenisnya, anda boleh terus menggunakannya mengikut kes penggunaan anda.

Atas ialah kandungan terperinci Cara menghuraikan pelbagai jenis jadual JSON-RPC. 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
Artikel sebelumnya:Lumpuhkan terminal di GolangArtikel seterusnya:Lumpuhkan terminal di Golang