ホームページ > バックエンド開発 > Golang > Golang は単一の構造体フィールドに複数の JSON タグを使用できますか?

Golang は単一の構造体フィールドに複数の JSON タグを使用できますか?

Patricia Arquette
リリース: 2024-12-13 03:48:10
オリジナル
522 人が閲覧しました

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

Golang の JSON タグ エイリアス

Golang では、json struct タグを使用して、構造体フィールドに対応する JSON フィールド名を指定します。しかし、単一のフィールドに複数の名前を割り当てることは可能ですか?

答えは「はい」ですが、標準ライブラリのエンコーディング/json パッケージではそうではありません。これを実現するには、github.com/json-iterator/go などのサードパーティの JSON ライブラリを利用できます。

jsoniter の使用

jsoniter を使用すると、以下を定義できます。 newtag プロパティを使用した複数の JSON タグ。以下に例を示します。

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}
}
ログイン後にコピー

この例では、TestJson 構造体が Name フィールドと Age フィールドに複数の JSON タグを定義します。標準ライブラリの json パッケージを使用してシリアル化する場合、デフォルトの json タグが使用されます。ただし、jsoniter を newtag 設定で使用する場合は、代わりに指定された newtag 値が使用されます。

以上がGolang は単一の構造体フィールドに複数の JSON タグを使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート