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