Rumah > pembangunan bahagian belakang > Golang > Bolehkah Golang Menggunakan Berbilang Tag JSON untuk Medan Struktur Tunggal?

Bolehkah Golang Menggunakan Berbilang Tag JSON untuk Medan Struktur Tunggal?

Patricia Arquette
Lepaskan: 2024-12-13 03:48:10
asal
523 orang telah melayarinya

Can Golang Use Multiple JSON Tags for a Single Struct Field?

Aliasis Teg JSON di Golang

Di Golang, teg struct json digunakan untuk menentukan nama medan JSON yang sepadan dengan medan struct. Walau bagaimanapun, adakah mungkin untuk menetapkan berbilang nama kepada satu medan?

Jawapannya adalah ya, tetapi tidak dengan pengekodan/pakej json perpustakaan standard. Untuk mencapai matlamat ini, anda boleh menggunakan perpustakaan JSON pihak ketiga seperti github.com/json-iterator/go.

Menggunakan jsoniter

Dengan jsoniter, anda boleh menentukan berbilang teg JSON menggunakan sifat newtag. Berikut ialah contoh:

package main

import (
    "fmt"
    "github.com/json-iterator/go"
)

type TestJson struct {
    Name string `json:"name" newtag:"newname"`
    Age  int    `json:"age" newtag:"newage"`
}

func main() {
    var json = jsoniter.ConfigCompatibleWithStandardLibrary
    data := TestJson{}
    data.Name = "zhangsan"
    data.Age = 22
    byt, _ := json.Marshal(&data)
    fmt.Println(string(byt)) // {"name":"zhangsan","age":22}

    var newJson = jsoniter.Config{
        TagKey: "newtag",
    }.Froze()

    byt, _ = newJson.Marshal(&data)
    fmt.Println(string(byt)) // {"newname":"zhangsan","newage":22}
}
Salin selepas log masuk

Dalam contoh ini, struct TestJson mentakrifkan berbilang teg JSON untuk medan Nama dan Umur. Apabila bersiri menggunakan pakej json perpustakaan standard, ia menggunakan tag json lalai. Walau bagaimanapun, apabila menggunakan jsoniter dengan konfigurasi newtag, ia menggunakan nilai newtag yang ditentukan.

Atas ialah kandungan terperinci Bolehkah Golang Menggunakan Berbilang Tag JSON untuk Medan Struktur Tunggal?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan