このシナリオでは、Golang 構造体にデコードする必要がある float 数値を含む JSON 文字列があります。デコードの最初の試みは、受信した浮動小数点数の文字列表現と構造体の float64 型の間の不一致が原因で失敗します。
これを解決するには、文字列値を次のように解釈するように JSON デコーダに指示する必要があります。 float64。これは、構造体定義の Price フィールドに ,string タグを追加することで実現できます。
type Product struct { Name string Price float64 `json:",string"` }
この変更により、デコーダーは文字列表現を float64 値に正常に変換します。更新された Golang コード:
package main import ( "encoding/json" "fmt" ) type Product struct { Name string Price float64 `json:",string"` } func main() { s := `{"name":"Galaxy Nexus", "price":"3460.00"}` var pro Product err := json.Unmarshal([]byte(s), &pro) if err == nil { fmt.Printf("%+v\n", pro) } else { fmt.Println(err) fmt.Printf("%+v\n", pro) } }
この更新されたコードを実行すると、目的の結果が出力されます:
{Name:Galaxy Nexus Price:3460}
以上がGo で JSON 文字列から Float64 への変換を処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。