我正在尝试解码一个JSON数组并将其放入结构体的切片中。我已经了解了如何做到这一点,但前提是JSON数组包含键。我的JSON数组没有包含键。
我已经将程序精简到只处理JSON数据的部分。它可以编译并在下面找到。
package main
// 2014-04-19
import (
"fmt"
"encoding/json"
)
type itemdata struct {
data1 int // I have tried making these strings
data2 int
data3 int
}
func main() {
datas := []itemdata{}
json.Unmarshal([]byte(`[["7293","1434","99646"],["4657","1051","23795"]]`), &datas)
// I have tried the JSON string without the qoutes around the numbers
fmt.Println(len(datas)) // This prints '2'
fmt.Println("This prints") // This does print
for i := range datas {
fmt.Println(datas[i].data1) // This prints '0', two times
}
fmt.Println("And so does this") // This does print
}
我搜索过类似于“Go Lang无键JSON解码”之类的内容,并阅读了Go Lang网站上的文章(和“包页面”)。 我可以找到足够的有关如何使用Go和JSON的信息,但是我找到的所有文章都没有解释如何在JSON数组中不使用键。
如果我得到错误消息,我不会觉得奇怪; JSON值是stringy-number类型(这是我输入它们的方式),但我正在尝试将它们转换为整数。 但是我并没有收到错误消息。 我已经尝试使“itemdata”结构中的值为字符串,但这并没有帮助太多。 删除JSON值中的引号也没有帮助。
我想知道如何将我的JSON数组制作为“itemdata”的切片。 前三个值将分别放在“itemdata.data1”,“itemdata.data2”和“itemdata.data3”中。
如果您认为我可以改进我的问题,请告诉我。
提前感谢,
Remi