Go で int64 Null 値を含む JSON を解析する
int64 値を含む JSON データを解析するときに、Null 値が発生する可能性があります。デフォルトでは、Go エンコーディング/json パッケージは null 値を int64 フィールドに直接アンマーシャリングしようとしますが、null を int64 に変換できないためエラーが発生します。
この問題を解決するには、直接 int64 フィールドの代わりにポインターを使用することを検討してください。 。ポインターは nil にすることも、関連する値を持つ int64 を指すこともできます。以下に例を示します。
import ( "encoding/json" "fmt" ) var d = []byte(`{ "world":[{"data": 2251799813685312}, {"data": null}]}`) type jsonobj struct{ World []World } type World struct{ Data *int64 } func main() { var data jsonobj jerr := json.Unmarshal(d, &data) fmt.Println(jerr) if data.World[1].Data != nil { fmt.Println(*data.World[1].Data) } }
ポインターを使用すると、World 構造体のデータ フィールドは、JSON 値が null の場合は nil になり、それ以外の場合は int64 値を指すことができます。これにより、エラーなしで null 値を適切に処理できるようになります。
以上がGo で JSON を解析するときに Null int64 値を処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。