「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Goの文字列として保存されたfloat64値でJSON文字列をデコードする方法は?

Goの文字列として保存されたfloat64値でJSON文字列をデコードする方法は?

2025-03-23に投稿されました
ブラウズ:890

How to Decode JSON Strings with Float64 Values Stored as Strings in Go?

jsonを文字列からfloat64にdecoded float64 in go

float64値を含むjson文字列を解析すると、値がストリングとして格納されると課題を引き起こす可能性があります。この問題に対処するために、GOは簡単なソリューションを提供します。エラー:

json:string in balut of go value of type float64 このエラーは、jsonデコーダーがfloat64番号の文字列表現を直接変換しようとするために発生します。 annotation

この問題を解決するには、型変換アノテーションを使用して文字列をfloat64として扱うようにデコーダーに明示的に指示する必要があります。この注釈は、製品構造のフィールド定義に追加されます:
json: cannot unmarshal string into Go value of type float64
タイプ製品struct { 名前文字列 価格float64 `json:"、string "` }

the "、string"タグは、jsonデコーダーに、価格フィールドがfloat64に変換するべき文字列であることを伝えます。 輸入 ( 「エンコード/json」 「FMT」 )) タイプ製品struct { 名前文字列 価格float64 `json:"、string "` } func main(){ s:= `{" name ":" Galaxy Nexus "、" Price ":" 3460.00 "}` var pro製品 err:= json.unmarshal([] byte(s)、&pro) err == nil { fmt.printf( "%v \ n"、pro) } それ以外 { fmt.println(err) fmt.printf( "%v \ n"、pro) } }

予想出力:

このコードを実行すると、予想される出力が生成されます:
json: cannot unmarshal string into Go value of type float64
{name:galaxy nexus価格:3460}

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3