gpt4 book ai didi

json - 不能用 "encoding/json"覆盖鹰(类型接口(interface) {})

转载 作者:数据小太阳 更新时间:2023-10-29 03:44:14 27 4
gpt4 key购买 nike

我有以下代码,我想遍历所有元素或访问一个元素,如 birds["eagle"["quote"][2]但我想不通

package main

import (
"fmt"
"encoding/json"
)

func main() {
birdJson := `{"birds": {"pigeon": {"quotes": "love the pigeons"}, "eagle": {"quotes": ["bird of prey", "soar like an eagle", "eagle has no fear"]}}}`

var result map[string]interface{}
json.Unmarshal([]byte(birdJson), &result)
birds := result["birds"].(map[string]interface{})

fmt.Printf("%v\n",birds)
eagle := birds["eagle"]

for key, value := range eagle {
fmt.Println(key, value.(string))
}
}

The Go Playground

最佳答案

有几个问题:

eagle := birds["eagle"] //eagle is of type interface{}

所以将它转换到 map 中:

eagle := birds["eagle"].(map[string]interface{})

现在您可以对其进行迭代:

for key, value := range eagle { 
for _, e := range value.([]interface{}){
fmt.Println(key, e.(string))
}
}

这里的值又是接口(interface)。所以首先转换为 []interface{},然后转换为 string。
这是完整的工作代码: https://play.golang.org/p/Bdnwit1wBYh

关于json - 不能用 "encoding/json"覆盖鹰(类型接口(interface) {}),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54882618/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com