- 此问题在此处已有答案**:
Go json array of arrays(1个答案)
2天前关闭。
我从外部服务器接收此json:
[["010117"、"070117"、"080117"]、["080117"、"140117"、"150117"]、["150117"、"210117"、"220117"]
我需要解析它
package main
import (
"encoding/json"
"fmt"
"io"
"os"
"runtime"
)
type Range struct {
From string
To string
Do string
}
type AllRanges struct {
Ranges []Range
}
func main() {
var ranges AllRanges
j, err := os.ReadFile(file)
if err != nil {
panic("Can't read json file")
}
if json.Unmarshal(j, &v) != nil {
panic("Error reading the json")
}
}
当我执行时,会抛出一个异常,指示读取json时出错
先谢了!
1条答案
按热度按时间js81xvg61#
1.这不是失败的代码。你发布的代码无法编译,因为它试图解组到一个未声明的变量
v
中。1.假设
v
应该是ranges
,那么问题就非常简单了......ranges
是类型AllRanges
,其是具有命名成员Ranges
的结构体,Ranges
是也具有命名成员的结构体数组。因此,当试图将json解组到此结构体中时,解组器将期望找到:
要解组由字符串数组的匿名数组组成的数据,需要将
ranges
声明为字符串数组的数组:一旦您将数组解组为这个数组的数组,您就需要编写代码将其转换为所需的结构化值。
这个playground演示了如何成功地将示例数据解组到一个
[][]string
中,转换过程留待练习。