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

Cara menghuraikan pelbagai jenis jadual JSON-RPC

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-02-14 19:42:10
ke hadapan
1334 orang telah melayarinya

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

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

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

Struktur jadual utama ialah:

[ <string>, <int>, <string>]
Salin selepas log masuk

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

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 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