ホームページ > バックエンド開発 > Golang > Go で JSON をデコードするときに String から Float64 への変換エラーを処理する方法

Go で JSON をデコードするときに String から Float64 への変換エラーを処理する方法

Barbara Streisand
リリース: 2024-12-25 00:39:11
オリジナル
165 人が閲覧しました

How to Handle String-to-Float64 Conversion Errors When Decoding JSON in Go?

String から Float64 への型変換による JSON のデコード

Golang では、型を使用するときに float 数値を含む JSON 文字列をデコードするとエラーが発生する場合がありますfloat64 のように。以下では、この問題を詳しく掘り下げ、解決策を示します。

次の JSON 入力を考えてみましょう:

{"name":"Galaxy Nexus", "price":"3460.00"}
ログイン後にコピー

対応する Go タイプ:

type Product struct {
    Name  string
    Price float64
}
ログイン後にコピー

JSON のアンマーシャリング組み込みの json パッケージを使用すると、エラーが発生する可能性があります:

json: cannot unmarshal string into Go value of type float64
ログイン後にコピー

このエラーが発生する理由は次のとおりです。 JSON 価格フィールドは文字列ですが、Go Price フィールドは float64 です。これを解決するには、価格フィールドが文字列エンコードされた float64 であることを JSON インタープリターに通知します。

type Product struct {
    Name  string
    Price float64 `json:",string"`
}
ログイン後にコピー

json タグに「string」を追加すると、インタープリターは処理中に文字列価格を float64 に自動的に変換します。デコード中。変更したコードを実行すると、期待どおりの出力が生成されます。

{Name:Galaxy Nexus Price:3460}
ログイン後にコピー

JSON デコード中に型変換が必要な場合、json タグと "string" (または他の型変換指定子) を使用すると、簡単な結果が得られます。効果的な解決策。

以上がGo で JSON をデコードするときに String から Float64 への変換エラーを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート