ループを使用せずに、インターフェイス値を使用して JSON データを Go マップにアンマーシャリングするにはどうすればよいですか?

DDD
リリース: 2024-10-26 18:31:02
オリジナル
485 人が閲覧しました

How Can I Unmarshal JSON Data into a Go Map with Interface Values Without Using Loops?

Go で JSON をマップにアンマーシャルする方法を公開

問題:

あなたは果物名の膨大なコレクションを含む、次のような大量の JSON データを処理します:

{"fruits":["apple","banana","cherry","date"]}
ログイン後にコピー

あなたの目的は、キーを文字列として、値を果物を表すインターフェースとしてマップにこのデータを効率的に保存することです。名前。反復的な挿入の必要性を排除する最適なアプローチを求めています。

解決策:

JSON アンマーシャルを使用して文字列リストを抽出する:

Go のエンコーディング/json パッケージは、ループを必要とせずに JSON データのマップへの変換を効率化するソリューションを提供します。次の手順に従うことで、これを実現できます。

  1. 果物名のリストを表す、文字列のキー タイプと []文字列の値のタイプを使用してマップを定義します。
  2. json.Unmarshal を使用して、[]*string を使用して定義されたマップに JSON データをアンマーシャリングします。
  3. map["fruits"] 構文を使用してフルーツ名にアクセスします。

ここにあります。説明的な例:

package main

import "fmt"
import "encoding/json"

func main() {
    src_json := []byte(`{"fruits":["apple","banana","cherry","date"]}`)
    var m map[string][]string
    err := json.Unmarshal(src_json, &m)
    if err != nil {
        panic(err)
    }
    fmt.Printf("%v", m["fruits"][0]) //apple
}
ログイン後にコピー

このアプローチにより、繰り返し挿入することなく、JSON データを効率的にマップに変換できます。

ソリューションをインターフェイス値に拡張:

要件に果物の名前を文字列リストではなくインターフェースとして表現する必要がある場合は、以下に示すようにマップの値の型を []interface{} に変更するだけです。

<code class="go">var m map[string][]interface{}</code>
ログイン後にコピー

この柔軟なアプローチにより、果物の名前をさまざまな形式で保存できるため、データ処理に多用途性がもたらされます。

以上がループを使用せずに、インターフェイス値を使用して JSON データを Go マップにアンマーシャリングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!