エラーへの対処: 「無効な操作: d["data"] (タイプ インターフェイス {} はインデックス付けをサポートしていません)」
が発生しましたGolang でネストされた JSON データにアクセスしているとき。
動的 JSON 応答を操作するときに、「無効な操作:
Toこれを解決するには、以下に示すように、まず変数 d が map[string]interface{} として型アサートされていることを確認する必要があります。
<code class="go">test := d.(map[string]interface{})["data"].(map[string]interface{})["type"]</code>
このアサーションを行うことで、d が明示的に宣言されていることになります。タイプは map[string]interface{} であり、そのキーにアクセスできます。その後、「データ」にアクセスし、ネストされたマップから「タイプ」プロパティを取得できます。
別のアプローチとして、d を直接マップ[文字列]インターフェース{}として宣言することもできます。
<code class="go">var d map[string]interface{} json.NewDecoder(response.Body).Decode(&d) test := d["data"].(map[string]interface{})["type"]</code>
そうすることで、最初の型アサーションが不要になります。
これらの操作を支援するには、動的処理に特化した github.com/icza/dyno ライブラリの使用を検討してください。オブジェクトを作成し、JSON データをナビゲートして操作するための便利なメソッドを提供します。
以上がネストされた JSON データにアクセスする際の Golang のエラー「無効な操作: d[\\\'data\\\'] (タイプ インターフェイス {} はインデックス作成をサポートしていません)」を処理する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。