Python では、構造体を定義せずに JSON オブジェクトから単一の値を簡単に抽出できます。一方、Go では、予想される JSON 構造を表す構造体を宣言する必要があります。ただし、このアプローチは、特定の値だけを取得する場合には面倒に思えるかもしれません。
専用の構造体を作成する代わりに、標準の json パッケージを利用して JSON をマップにデコードできます。文字列]インターフェイス{}。これにより、キーによって値にアクセスできるようになります。
import ( "encoding/json" "fmt" ) func main() { b := []byte(`{"ask_price":"1.0"}`) data := make(map[string]interface{}) err := json.Unmarshal(b, &data) if err != nil { panic(err) } if price, ok := data["ask_price"].(string); ok { fmt.Println(price) } else { panic("wrong type") } }
マップを使用すると、次のことが可能になるため柔軟性が得られます。
構造体は、次の用途に引き続き役立ちます。
マップと構造体のどちらを選択するかは、アプリケーションの特定の要件によって異なります。シンプルさと柔軟性を優先する場合は、マップの方が良い選択となる可能性があります。型安全性と明示的なデータ表現が不可欠な場合は、構造体を推奨します。
以上が構造体を定義せずに、Go で JSON から単一の値を効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。