golang json untuk memetakan

WBOY
Lepaskan: 2023-05-13 09:38:08
asal
1281 orang telah melayarinya

Dalam bahasa Go, pengekodan dan penyahkodan data menggunakan JSON ialah operasi yang sangat biasa. Tetapi dalam beberapa kes, kami mungkin perlu menukar data JSON kepada peta untuk memudahkan operasi lain padanya. Dalam artikel ini, kami akan memperkenalkan cara menukar data JSON kepada jenis peta menggunakan bahasa Go.

Pakej pengekodan/json disediakan dalam bahasa Go, yang menyediakan fungsi pengekodan dan penyahkodan untuk data JSON. Gunakan pakej ini untuk menyahkod data JSON ke dalam struktur atau jenis primitif dalam bahasa Go. Tetapi jika kita ingin menukar data JSON kepada jenis peta, kita perlu memprosesnya secara manual.

Andaikan kita mempunyai data JSON berikut:

{
    "name": "John",
    "age": 22,
    "gender": "male",
    "friends": [
        {
            "name": "Marry",
            "age": 20
        },
        {
            "name": "Tom",
            "age": 23
        }
    ]
}
Salin selepas log masuk

Berikut ialah kod untuk menukar data JSON kepada jenis peta:

package main

import (
    "encoding/json"
    "fmt"
)

func jsonToMap(jsonStr string) (map[string]interface{}, error) {
    var result map[string]interface{}
    err := json.Unmarshal([]byte(jsonStr), &result)
    if err != nil {
        return nil, err
    }
    return result, nil
}

func main() {
    jsonStr := `{
        "name": "John",
        "age": 22,
        "gender": "male",
        "friends": [
            {
                "name": "Marry",
                "age": 20
            },
            {
                "name": "Tom",
                "age": 23
            }
        ]
    }`
    result, err := jsonToMap(jsonStr)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(result)
}
Salin selepas log masuk

Fungsi jsonToMap ditakrifkan dalam kod , yang Fungsi menerima rentetan JSON sebagai parameter dan mengembalikan hasil jenis map[rentetan]antara muka{}. Dalam fungsi, kami menggunakan kaedah json.Unmarshal untuk menyahkod rentetan JSON kepada jenis peta. Dalam objek peta[rentetan]antara muka{} yang dinyahkod, kunci sepadan dengan rentetan dalam data JSON dan jenis nilai adalah sama dengan jenis data JSON yang sepadan. Memandangkan jenis data dalam JSON tidak terhad, selepas penyahkodan, kami mentakrifkan jenis nilai hasil sebagai jenis{} antara muka.

Dalam fungsi utama, kami menghantar rentetan JSON ke fungsi jsonToMap dan mencetak hasil pulangan. Menjalankan program, kita boleh mendapatkan output berikut:

map[name:John age:22 friends:[map[age:20 name:Marry] map[age:23 name:Tom]] gender:male]
Salin selepas log masuk

Seperti yang anda lihat, selepas menukar JSON kepada peta, kami boleh mengendalikannya mengikut kehendak kami. Sebagai contoh, kita boleh mendapatkan nilai yang sepadan melalui kekunci, seperti result["name"] untuk mendapatkan rentetan John. Di samping itu, apabila data JSON adalah kompleks, kami juga boleh menggunakan kaedah menukar peta kepada struktur untuk memudahkan operasi data dan penukaran jenis.

Ringkasan

Artikel ini memperincikan kaedah menukar data JSON kepada peta dalam bahasa Go. Kami menggunakan kaedah Unmarshal dalam pakej pengekodan/json untuk menyahkod rentetan JSON ke dalam jenis peta dan menerangkan beberapa perkara yang memerlukan perhatian. Melalui mengkaji artikel ini, kita seharusnya mempunyai pemahaman yang lebih mendalam tentang masalah yang disebabkan oleh menggunakan JSON untuk memproses data, dan dapat memproses data dengan lebih cekap.

Atas ialah kandungan terperinci golang json untuk memetakan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!