Go の Unmarshal を使用した複雑な JSON の解析
encoding/json パッケージは、JSON データを解析するための json.Unmarshal 関数を提供します。この関数は、JSON 文字列を事前定義された構造体またはインターフェイス値にアンマーシャリングするために使用できます。
ネストされた配列やオブジェクトを含む可能性のある複雑な JSON 構造を扱う場合、インターフェイス{}を使用すると、開発者は予期せぬ事態に対処できます。データ構造。たとえば、次の JSON について考えてみましょう:
{ "k1": "v1", "k2": "v2", "k3": 10, "result": [ [ ["v4", "v5", {"k11": "v11", "k22": "v22"}], ... ], "v3" ] }
この JSON を解析するには、次のコード スニペットを使用できます:
import ( "encoding/json" "fmt" ) func main() { b := []byte(`{ "k1" : "v1", "k2" : "v2", "k3" : 10, "result" : [ [ ["v4", v5, {"k11" : "v11", "k22" : "v22"}] , ... , ["v4", v5, {"k33" : "v33", "k44" : "v44"} ] ], "v3" ] }`) var f interface{} err := json.Unmarshal(b, &f) if err != nil { fmt.Println("Error:", err) } // Access the data in the interface{} value m := f.(map[string]interface{}) fmt.Println("k1:", m["k1"]) fmt.Println("k3:", m["k3"]) for _, v := range m["result"].([]interface{}) { fmt.Println("Element:", v) } }
マップを反復処理し、型スイッチを使用することで、正しい型の値にアクセスできます。このアプローチにより、未知の JSON 構造を柔軟かつタイプセーフな方法で操作できるようになります。
以上が`json.Unmarshal` を使用して Go で複雑な JSON 構造を効率的に解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。