Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Umarshalling JSON将导致空结构_Arrays_Json_Go_Slice - Fatal编程技术网

Arrays Umarshalling JSON将导致空结构

Arrays Umarshalling JSON将导致空结构,arrays,json,go,slice,Arrays,Json,Go,Slice,我有以下JSON结构: dataJson := `{"data1" : [["a",1]["b",2]], "data2": ["a","b",3]}` 想用围棋解开它。我正在尝试以下代码: type myData struct { row map[string][][]interface{} `json:"data1"` column map[string][]interface{} `json:"data2"` } var arr myData _ = jso

我有以下JSON结构:

dataJson := `{"data1" : [["a",1]["b",2]], "data2": ["a","b",3]}`
想用围棋解开它。我正在尝试以下代码:

type myData struct {
    row    map[string][][]interface{} `json:"data1"`
    column map[string][]interface{}   `json:"data2"`
}

var arr myData

_ = json.Unmarshal([]byte(dataJson), &arr)
但我得到的是空数据:

Unmarshaled: {map[] map[]}

知道如何解析这样的JSON结构吗?

第一个问题是必须导出结构字段(以大写字母开头)。有关更多详细信息,请参阅

接下来,输入的JSON无效,
data1
array的元素之间缺少逗号。应该是:

{"data1" : [["a",1],["b",2]], "data2": ["a","b",3]}
第三,
data1
data2
是JSON数组,因此必须在Go中使用切片,而不是映射

大概是这样的:

type myData struct {
    Row    [][]interface{} `json:"data1"`
    Column []interface{}   `json:"data2"`
}
返回一个错误,不要忽略Go中的错误。至少你可以打印出来,这样你就知道有什么不对了:

dataJson := `{"data1" : [["a",1],["b",2]], "data2": ["a","b",3]}`

var arr myData
if err := json.Unmarshal([]byte(dataJson), &arr); err != nil {
    log.Println(err)
}
log.Printf("Unmarshaled: %v", arr)
这将输出(在上尝试):

2009/11/10 23:00:00 Unmarshaled: {[[a 1] [b 2]] [a b 3]}