Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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
为什么我能';t解析json,该json具有带Unmarshal的嵌套数组_Json_Go_Unmarshalling - Fatal编程技术网

为什么我能';t解析json,该json具有带Unmarshal的嵌套数组

为什么我能';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"

我想在Go中使用
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
}