ホームページ >バックエンド開発 >Golang >Go の「encoding/json」を使用して、キー名にスペースが含まれる JSON をアンマーシャリングするにはどうすればよいですか?

Go の「encoding/json」を使用して、キー名にスペースが含まれる JSON をアンマーシャリングするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-25 07:57:10519ブラウズ

How Can I Unmarshal JSON with Spaces in Key Names Using Go's `encoding/json`?

スペースを含む JSON キー名: アンマーシャリングが可能

スペースを含む複雑なキーを含む JSON データをデシリアライズすると、アンマーシャリング中に問題が発生することがよくあります。 Go のエンコーディング/json ライブラリを使用した具体的な例を調べてみましょう。

問題:

次の JSON スキーマを考えてみましょう:

[
  {"Na me": "Platypus", "Order": "Monotremata"},
  {"Na me": "Quoll", "Order": "Dasyuromorphia"}
]

使用このデータを次の Go にアンマーシャリングするための標準エンコーディング/json ライブラリstruct:

type Animal struct {
    Name  string `json:"Na me"`
    Order string `json:"Order,omitempty"`
}

は、JSON キーにスペースがあるため、空の「名前」フィールドになります。

原因:

スペースJSON キーにあると、アンマーシャリング プロセスが混乱します。ライブラリはキー「Na me」を Animal 構造体のフィールドと照合しようとしますが、対応するフィールドがありません。

解決策:

この問題を解決するには、json タグ内の struct フィールド タグでスペースを含む正しいキー名が指定されていることを確認してください:

type Animal struct {
    Name  string `json:"Na me"`
    Order string `json:"Order,omitempty"`
}

この改訂されたタグ付けでは、アンマーシャリング プロセスは、JSON キーを正しい構造体フィールドに正常にマップでき、期待される出力が得られます:

[
  {Name:Platypus Order:Monotremata}
  {Name:Quoll Order:Dasyuromorphia}
]

以上がGo の「encoding/json」を使用して、キー名にスペースが含まれる JSON をアンマーシャリングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。