ホームページ > バックエンド開発 > Golang > Go で JSON から単一の値を効率的に解析するにはどうすればよいですか?

Go で JSON から単一の値を効率的に解析するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-16 10:36:10
オリジナル
904 人が閲覧しました

How Can I Efficiently Parse Single Values from JSON in Go?

Go での JSON 単一値の解析

JSON データの解析は、プログラミングにおける一般的なタスクです。 Python では、複雑なデータ構造を必要とせずに、JSON オブジェクトから特定の値を簡単に取得できます。ただし、Go では、構造体を使用して JSON データを処理する方が一般的です。

Go アプローチ:

Go では、伝統的に、構造体は JSON オブジェクトと一致するように宣言されます。 json.Unmarshal 関数は、JSON を構造体にアンマーシャルするために使用されます。ただし、このアプローチは、特に特定の値のみに興味がある場合、冗長で不便になる可能性があります。

代替アプローチ:

Go での JSON 解析を簡略化するには、次の代替方法を検討してください。アプローチ:

JSON をマップ[文字列]インターフェース{}にデコードします。これにより、JSON キーが対応する値にマッピングされます。 Interface{}.

[] 演算子を使用して、目的の JSON キーに関連付けられた値にアクセスします。

値が予期された型ではない場合は、型アサーションを使用して適切に処理します.

例:

これを示す Go の例を次に示します。アプローチ:

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 をマップにアンマーシャリングしてから、印刷前に文字列に型アサートされる「ask_price」値を抽出します。

注:

構造体は Go での JSON 解析に引き続き使用できますが、より明示的であり、 JSON からいくつかの特定の値のみが必要な場合は必要ありません。マップを使用する別のアプローチでは、JSON データを処理するためのより簡潔かつ柔軟な方法が提供されます。

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

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