Go で JSON をマップにアンマーシャルする方法を公開
問題:
あなたは果物名の膨大なコレクションを含む、次のような大量の JSON データを処理します:
{"fruits":["apple","banana","cherry","date"]}
あなたの目的は、キーを文字列として、値を果物を表すインターフェースとしてマップにこのデータを効率的に保存することです。名前。反復的な挿入の必要性を排除する最適なアプローチを求めています。
解決策:
JSON アンマーシャルを使用して文字列リストを抽出する:
Go のエンコーディング/json パッケージは、ループを必要とせずに JSON データのマップへの変換を効率化するソリューションを提供します。次の手順に従うことで、これを実現できます。
ここにあります。説明的な例:
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 サイトの他の関連記事を参照してください。