Go での int64 の JSON 解析: Null 値の処理
Go では、int64 型の整数値を含む JSON データを解析すると、次のような場合に課題が生じることがあります。 null 値が発生しました。 null 値が発生すると、デフォルトの JSON パッケージは、null を int64 にアンマーシャリングできないため、エラーをスローします。
JSON 解析用の Nullable int64 型
これを克服するには制限があるため、null 許容の int64 型が必要です。 null 許容の int64 では、nil 値または有効な int64 値のいずれかを使用できます。 Go でポインターを使用することで、次の機能を実現します。
type NullableInt64 *int64
型のポインターを使用する場合、nil または int64 値を参照できます。
実装
null 許容 int64 型を以前の型に組み込む例:
package main import ( "encoding/json" "fmt" ) var d = []byte(`{ "world":[{"data": 2251799813685312}, {"data": null}]}`) type jsonobj struct{ World []World } type World struct{ Data *int64 } // Using *int64 for nullable int64 func main() { var data jsonobj jerr := json.Unmarshal(d, &data) fmt.Println(jerr) }
この変更により、JSON パーサーはエラーが発生することなく、「データ」フィールドの null 値を正常に処理できるようになります。
以上がGo で int64 JSON データを解析するときに Null 値を処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。