ホームページ >バックエンド開発 >Golang >Go でアンマーシャリングするときに、空の JSON フィールドと欠落している JSON フィールドを区別するにはどうすればよいですか?

Go でアンマーシャリングするときに、空の JSON フィールドと欠落している JSON フィールドを区別するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-04 06:05:16248ブラウズ

How Can I Distinguish Between Empty and Missing JSON Fields When Unmarshalling in Go?

Go のアンマーシャリングで Void 値と未指定フィールドの謎を明らかにする

Go では、JSON を構造体にアンマーシャリングするときに、次のことが困難になることがあります。 void 値と指定されていないフィールド値を区別します。これにより、プログラムの動作があいまいになる可能性があります。この難題を解決する方法は次のとおりです。

Void 値と未指定値の区別

Void 値は、JSON フィールドが存在するが空の値 (空の文字列など) を持つ場合に発生します。 )、フィールドが JSON から完全に省略されている場合は、未指定の値が発生します。これらを区別するには、ポインターを使用するようにフィールド タイプを変更します。

type Category struct {
    Name        string
    Description *string
}

これで、JSON フィールドに空の文字列が含まれる場合、空の文字列を指すポインターに設定されます。ただし、フィールドが存在しない場合は、nil のままになります。

使用例

次の JSON について考えてみましょう。

[
    {"Name": "A", "Description": "Monotremata"},
    {"Name": "B"},
    {"Name": "C", "Description": ""}
]

フィールド タイプを変更すると、出力は次のようになります:

[{Name:A Description:0x1050c150}, {Name:B Description:<nil>}, {Name:C Description:0x1050c158}]

これにより、フィールド タイプを区別できるようになります。カテゴリ B の指定されていない説明フィールドとカテゴリ C の空の説明フィールド。プログラム内でこれらを個別に処理できるようになりました。

以上がGo でアンマーシャリングするときに、空の JSON フィールドと欠落している JSON フィールドを区別するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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