解决错误:“无效操作: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{},允许您访问它的键。随后,您可以访问“data”并从嵌套映射中检索“type”属性。
作为替代方法,您还可以直接将 d 声明为 map[string]interface{}:
<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 数据的便捷方法。
以上是如何处理 Golang 访问嵌套 JSON 数据时出现'无效操作:d[\\\”data\\\”](类型接口 {} 不支持索引)\”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!