在Golang中解析有问题JSON文件的最佳方法
我有一些有效的JSON文件,还有一些不是(没有括号) 目前,我对每种情况都有一个方法:一个使用json.Unmarshal作为有效的方法,另一个使用json.NewDecoder作为无括号的方法 如何将它合并到一个函数中?什么可以处理这两种情况 编辑: 以下是两个案例的代码:在Golang中解析有问题JSON文件的最佳方法,json,parsing,go,Json,Parsing,Go,我有一些有效的JSON文件,还有一些不是(没有括号) 目前,我对每种情况都有一个方法:一个使用json.Unmarshal作为有效的方法,另一个使用json.NewDecoder作为无括号的方法 如何将它合并到一个函数中?什么可以处理这两种情况 编辑: 以下是两个案例的代码: func getDrivers() []Drivers { raw, err := ioutil.ReadFile("/home/ubuntu/drivers.json") if err != nil {
func getDrivers() []Drivers {
raw, err := ioutil.ReadFile("/home/ubuntu/drivers.json")
if err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
var d []Drivers
json.Unmarshal(raw, &d)
return d
}
func getMetrics() []Metrics {
file, err := os.Open("/home/ubuntu/metrics.json")
if err != nil {
fmt.Println("bad err!")
}
r := bufio.NewReader(file)
dec := json.NewDecoder(r)
// while the array contains values
var metrics []Metrics
for dec.More() {
var m Metrics
err := dec.Decode(&m)
if err != nil {
log.Fatal(err)
}
metrics = append(metrics, m)
}
return metrics
}
谢谢请给我们一个例子。@kambi您能为这两种情况提供json示例吗。如果json文件无效,那么json解析器就不会神奇地解析无效的json。。首先要使其有效。如果缺少大括号,为什么不直接添加大括号,然后进行解码?