英文:
Traversing nested JSON structs
问题
我想遍历嵌套的JSON结构并从interface{}中获取每个键和值。
以下是要翻译的代码部分:
我想从以下结构中获取:
{
"tg": {
"A": {
"E": 100,
"H": 14
},
"B": {
"D": 1
},
"C": {
"D": 1,
"E": 1
},
"D": {
"F": 1,
"G": 1,
"H": 1
},
"E": {
"G": 1
}
}
}
我能够获取以下内容:
a := js.Get("tg").Get("D").Get("F")
fmt.Println(*a) // {1}
但是在将其类型断言为整数时遇到了问题。
invalid type assertion: (*a).(int)
如何遍历整个结构并获取每个字符映射的整数?
谢谢!
以下是翻译好的内容:
我想遍历嵌套的JSON结构并从interface{}中获取每个键和值。
以下是要翻译的代码部分:
我想从以下结构中获取:
{
"tg": {
"A": {
"E": 100,
"H": 14
},
"B": {
"D": 1
},
"C": {
"D": 1,
"E": 1
},
"D": {
"F": 1,
"G": 1,
"H": 1
},
"E": {
"G": 1
}
}
}
我能够获取以下内容:
a := js.Get("tg").Get("D").Get("F")
fmt.Println(*a) // {1}
但是在将其类型断言为整数时遇到了问题。
invalid type assertion: (*a).(int)
如何遍历整个结构并获取每个字符映射的整数?
谢谢!
英文:
I want to traverse the nested JSON struct and get each key and value from the interface{}
http://play.golang.org/p/B-B3pejGJW
So I want from the following struct
{
"tg": {
"A": {
"E": 100,
"H": 14
},
"B": {
"D": 1
},
"C": {
"D": 1,
"E": 1
},
"D": {
"F": 1,
"G": 1,
"H": 1
},
"E": {
"G": 1
}
}
}
I was able to get the following
a := js.Get("tg").Get("D").Get("F")
fmt.Println(*a) // {1}
but having trouble with type assert this to integer.
invalid type assertion: (*a).(int)
How would would traverse this whole struct and get each integer mapped from the characters?
Thanks!
答案1
得分: 1
你的值将被转换为 float64
类型。此外,你没有访问 a.data
,而是访问了一个结构体 a
,这导致了错误。
fmt.Printf("%#v\n", a) // &main.JSON{data:1}
fmt.Println(reflect.TypeOf(a.data)) // float64
x := int(a.data.(float64))
英文:
Your value will be marshalled into a float64
. Plus you are not accessing a.data
but a
instead which is a struct which is causing the error.
fmt.Printf("%#v\n", a) // &main.JSON{data:1}
fmt.Println(reflect.TypeOf(a.data)) // float64
x := int(a.data.(float64))
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论