ホームページ > バックエンド開発 > Golang > 構造体を定義せずに、Go で JSON から単一の値を効率的に抽出するにはどうすればよいですか?

構造体を定義せずに、Go で JSON から単一の値を効率的に抽出するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-21 01:31:10
オリジナル
382 人が閲覧しました

How Can I Efficiently Extract a Single Value from JSON in Go Without Defining a Struct?

Go での JSON 単一値の解析

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")
    }
}
ログイン後にコピー

マップの利点

マップを使用すると、次のことが可能になるため柔軟性が得られます。

  • JSON 構造を処理する不明なスキーマまたは動的スキーマ。
  • 型のないキーによる値へのアクセスアサーション。

構造体の考慮事項

構造体は、次の用途に引き続き役立ちます。

  • 型安全性の強化とデータの一貫性の確保。
  • 文書化されたフィールド名基礎となる JSON を理解するのに役立ちますStructure.

マップと構造体のどちらを選択するかは、アプリケーションの特定の要件によって異なります。シンプルさと柔軟性を優先する場合は、マップの方が良い選択となる可能性があります。型安全性と明示的なデータ表現が不可欠な場合は、構造体を推奨します。

以上が構造体を定義せずに、Go で JSON から単一の値を効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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