int64 の JSON 解析: Go での Null 値の処理
Go で JSON ストリームを解析する場合、特に Null 値の処理が課題になることがあります。 int64 型を扱う場合。示されている例に示されているように、null 値を含む JSON オブジェクトを int64 型の struct フィールドにアンマーシャリングしようとすると、型の不一致によりエラーが発生します。
アドレス Null へのポインターの使用値
この問題に対する簡単な解決策は、int64 へのポインターを使用することです。ポインタは、null 値を表す nil にすることも、関連する値を持つ有効な int64 インスタンスを指すこともできます。このアプローチは Go の JSON パッケージでサポートされています。
type World struct { Data *int64 }
int64 へのポインターを使用するように上記の構造体定義を変更することで、以前のエラーが発生することなく JSON データを正常にアンマーシャリングできるようになりました。 *int64 を使用すると、JSON パーサーは null 値を nil ポインターとして表すことができます。
null を Null 以外の値にマッピングする
必要に応じて、null 値を次の値にマッピングできます。 -1 や MinValue などの null 以外の値。これは、アンマーシャリング後に JSON データをカスタム処理することで実現できます。例:
func MapNull(data *int64) int64 { if data == nil { return -1 } return *data }
アンマーシャリング後に MapNull 関数を呼び出すと、null 値を目的の非 null 表現に置き換えることができます。
結論
Go で int64 型を含む JSON データを解析するときに null 値を処理するには、へのポインターを使用することで実現できます。 int64。この手法により、JSON パーサーは null 値を表現し、元のデータ構造を保持できるようになります。必要に応じて、カスタムの後処理を適用して、null 値を代替の非 null 表現にマップできます。
以上がGo で JSON int64 を解析するときに Null 値を処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。