ホームページ >バックエンド開発 >Golang >Go で JSON を解析するときに Null int64 値を処理する方法は?

Go で JSON を解析するときに Null int64 値を処理する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-30 10:03:11997ブラウズ

How to Handle Null int64 Values When Parsing JSON in Go?

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 サイトの他の関連記事を参照してください。

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