ホームページ >バックエンド開発 >Golang >Go で大文字と小文字を区別する JSON アンマーシャルを実現するにはどうすればよいですか?

Go で大文字と小文字を区別する JSON アンマーシャルを実現するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-09 07:43:02568ブラウズ

How to Achieve Case-Sensitive JSON Unmarshal in Go?

Go での大文字と小文字を区別する JSON アンマーシャル

Go の json.Unmarshal 関数は、JSON データを構造体に逆シリアル化する方法を提供します。デフォルトでは、Unmarshal は、JSON キーと構造体のフィールド名またはタグの間で大文字と小文字を区別しない照合を実行します。ただし、大文字と小文字を区別して一致させることが望ましい場合もあります。

問題

「e」や「」などのタグが付いた JSON データを受信したとします。エ」。タグ「e」を持つオブジェクトをアンマーシャリングし、「E」を持つオブジェクトを無視したいとします。デフォルトの大文字と小文字を区別しないマッチングでは、Unmarshal は両方のタグを受け入れ、それに応じて構造体をアンマーシャルします。

解決策

残念ながら、標準の JSON ライブラリは現在大文字と小文字をサポートしていません。 Unmarshal のセンシティブなマッチング。公式ドキュメントによると:

To unmarshal JSON into a struct, Unmarshal matches incoming object keys to the keys used by Marshal (either the struct field name or its tag), preferring an exact match but also accepting a case-insensitive match.

したがって、標準の JSON ライブラリを使用して大文字と小文字を区別しないマッチングを無効にする方法はありません。

以上がGo で大文字と小文字を区別する JSON アンマーシャルを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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