为什么我能';t解析json,该json具有带Unmarshal的嵌套数组
我想在Go中使用为什么我能';t解析json,该json具有带Unmarshal的嵌套数组,json,go,unmarshalling,Json,Go,Unmarshalling,我想在Go中使用json.Unmarshal解析这个json { "quotes": [ { "high": "1.9981", "open": "1.9981", "bid": "1.9981", "currencyPairCode": "GBPNZD", "ask": "2.0043", "low": "1.9981"
json.Unmarshal
解析这个json
{
"quotes": [
{
"high": "1.9981",
"open": "1.9981",
"bid": "1.9981",
"currencyPairCode": "GBPNZD",
"ask": "2.0043",
"low": "1.9981"
},
{
"high": "81.79",
"open": "81.79",
"bid": "81.79",
"currencyPairCode": "CADJPY",
"ask": "82.03",
"low": "81.79"
}
]
}
源代码返回关于解析结果的{[]}
类型GaitameOnlineResponse结构{
引用
}
类型Quote结构{
高弦
开放字符串
投标串
currencyPairCode字符串
询问字符串
低弦
}
func sampleParse(){
路径:=os.Getenv(“PWD”)
字节,err:=ioutil.ReadFile(path+“/rate.json”)
如果错误!=零{
log.Fatal(错误)
}
var r GaitameOnlineResponse
如果err:=json.Unmarshal(字节,&r);err!=nil{
log.Fatal(错误)
}
fmt.Println(右)
// {[]}
}
我不知道结果的原因。编辑:正如@mkopriva所指出的,如果字段未导出(即以大写字母开头),JSON将不会解组到结构中,例如
有很多在线JSON验证器,例如 将JSON粘贴到中会显示错误:
Error: Parse error on line 17:
..."low": "81.79"
添加一个]
来完成第18行的数组将修复JSON,例如
"low": "81.79"
}
]
}
我不得不出口
type GaitameOnlineResponse struct {
Quotes []Quote
}
type Quote struct {
High string
Open string
Bid string
CurrencyPairCode string
Ask string
Low string
}
我已解决。字段未报告,您需要导出它们。。。。如果您不知道如何或为什么,请参见这里:我忘记了响应类型的定义。我解决了这个问题。谢谢。当我提出这个问题时,我犯了一个错误。
type GaitameOnlineResponse struct {
Quotes []Quote
}
type Quote struct {
High string
Open string
Bid string
CurrencyPairCode string
Ask string
Low string
}