Go では、特に整数と Null 値を扱う場合に、JSON ストリームの解析が複雑になることがあります。 null 許容型を使用した一般的な問題とその解決策を見てみましょう。
問題:
整数を含む JSON データを解析するときに、次のエラーが発生する場合があります:
json: cannot unmarshal null into Go value of type int64
このエラーは、標準の Go JSON パッケージでは処理できない、JSON 内に null 許容整数がある場合に発生します。
解決策:
この問題に対処するには、整数へのポインターの使用を検討してください。ポインタは nil (null 値を表す) にすることも、関連する値を持つ整数を指すこともできます。実装方法は次のとおりです:
import ( "encoding/json" "fmt" ) var d = []byte(`{ "world":[{"data": 2251799813685312}, {"data": null}]}`) type jsonobj struct{ World []*int64 } type World struct{ Data *int64 } func main() { var data jsonobj jerr := json.Unmarshal(d, &data) if jerr != nil { fmt.Println(jerr) } for _, w := range data.World { if w == nil { fmt.Println("Got a null value") } else { fmt.Println(*w) } } }
この変更された例では:
JSON を解析するとき、数値と null 整数値を正しく処理し、それに応じて出力します。
Got a null value 2251799813685312
このアプローチは、null 許容整数を処理するためのシンプルで効果的な方法を提供します。 Go で JSON ストリームを解析するとき。
以上がGo で JSON をアンマーシャリングするときに Null 整数値を処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。