Rumah >pembangunan bahagian belakang >Golang >Gunakan fungsi yang disediakan oleh pakej pengekodan/json untuk mengekod dan menyahkod rentetan JSON

Gunakan fungsi yang disediakan oleh pakej pengekodan/json untuk mengekod dan menyahkod rentetan JSON

王林
王林asal
2023-07-25 17:41:121012semak imbas

Gunakan fungsi yang disediakan oleh pakej pengekodan/json untuk mengekod dan menyahkod rentetan JSON

JSON (JavaScript Object Notation) ialah format pertukaran data yang biasa digunakan dan digunakan secara meluas untuk penghantaran dan penyimpanan data bahagian hadapan dan belakang. Pakej pengekodan/json dalam pustaka standard bahasa Go menyediakan satu set fungsi yang membolehkan kami mengekod dan menyahkod rentetan JSON dengan mudah.

Dalam bahasa Go, anda boleh menggunakan struktur struct untuk mewakili objek JSON, kemudian gunakan fungsi Marshal dan Unmarshal yang disediakan oleh pakej pengekodan/json untuk mengekod dan menyahkod.

Mula-mula, mari kita lihat pengekodan rentetan JSON. Pengekodan adalah untuk menukar objek struct dalam bahasa Go ke dalam rentetan JSON.

Contoh kod:

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name   string
    Age    int
    Gender string
}

func main() {
    p := Person{
        Name:   "Alice",
        Age:    25,
        Gender: "Female",
    }

    // 使用json.Marshal函数对Person对象进行编码,返回一个字节数组
    jsonBytes, err := json.Marshal(p)
    if err != nil {
        fmt.Println("JSON编码失败:", err)
        return
    }

    // 将字节数组转换为字符串
    jsonString := string(jsonBytes)

    fmt.Println(jsonString)
}

Jalankan kod di atas, hasil output ialah:

{"Name":"Alice","Age":25,"Gender":"Female"}

Anda boleh melihat bahawa rentetan JSON yang dikodkan sepadan dengan objek Orang asal satu-satu, dan medan setiap objek sepadan dengan kunci pasangan nilai rentetan JSON. Rentetan JSON yang dikodkan akan mengekalkan susunan asalnya.

Seterusnya, mari kita lihat penyahkodan rentetan JSON. Penyahkodan adalah untuk menukar rentetan JSON kepada objek struct dalam bahasa Go.

Contoh kod:

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name   string
    Age    int
    Gender string
}

func main() {
    jsonString := `{"Name":"Alice","Age":25,"Gender":"Female"}`

    // 将JSON字符串转换为字节数组
    jsonBytes := []byte(jsonString)

    // 使用json.Unmarshal函数对JSON字符串进行解码
    var p Person
    err := json.Unmarshal(jsonBytes, &p)
    if err != nil {
        fmt.Println("JSON解码失败:", err)
        return
    }

    fmt.Println(p)
}

Jalankan kod di atas, hasil output ialah:

{Alice 25 Female}

Anda boleh melihat bahawa objek Orang yang dinyahkod sepadan dengan rentetan JSON asal satu sama satu, dan setiap pasangan nilai kunci sepadan dengan bidang objek. Medan yang dinyahkod mengekalkan jenis data asalnya.

Perlu diambil perhatian bahawa apabila menggunakan pakej pengekodan/json untuk pengekodan dan penyahkodan, anda mesti memastikan bahawa nama medan dalam objek struct bahasa Go adalah konsisten dengan nama kunci dalam rentetan JSON untuk melaksanakan penukaran dengan betul.

Di atas ialah contoh kod untuk pengekodan dan penyahkodan rentetan JSON menggunakan pakej pengekodan/json. Menggunakan fungsi ini, kami boleh memproses data JSON dalam bahasa Go dengan mudah.

Atas ialah kandungan terperinci Gunakan fungsi yang disediakan oleh pakej pengekodan/json untuk mengekod dan menyahkod rentetan JSON. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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