Json Unmarshal返回空白结构
我有一个JSON blob,看起来像这样Json Unmarshal返回空白结构,json,go,unmarshalling,Json,Go,Unmarshalling,我有一个JSON blob,看起来像这样 { "metadata":{ "id":"2377f625-619b-4e20-90af-9a6cbfb80040", "from":"2014-12-30T07:23:42.000Z", "to":"2015-01-14T05:11:51.000Z", "entryCount":801, "size":821472, "deprecated":fal
{
"metadata":{
"id":"2377f625-619b-4e20-90af-9a6cbfb80040",
"from":"2014-12-30T07:23:42.000Z",
"to":"2015-01-14T05:11:51.000Z",
"entryCount":801,
"size":821472,
"deprecated":false
},
"status":[{
"node_id":"de713614-be3d-4c39-a3f8-1154957e46a6",
"status":"PUBLISHED"
}]
}
我有一些代码可以把它转换回go结构
type Status struct {
status string
node_id string
}
type Meta struct {
to string
from string
id string
entryCount int64
size int64
depricated bool
}
type Mydata struct {
met meta
stat []status
}
var realdata Mydata
err1 := json.Unmarshal(data, &realdata)
if err1 != nil {
fmt.Println("error:", err1)
}
fmt.Printf("%T: %+v\n", realdata, realdata)
但当我运行它时,我看到的只是一个零结构
main.Mydata: {met:{to: from: id: entryCount:0 size:0 depricated:false} stat:[]}
我尝试先分配结构,但也不起作用,我不确定为什么它不生成值,也不返回错误您的结构字段不会导出。这是因为它们以小写字母开头
EntryCount // <--- Exported
entryCount // <--- Not exported
您还应参考Golang规范以获取答案。具体来说,.这不应该被否决,但您应该提到json标记值,以便为封送的json提供所需的名称。像json:“输入计数”道歉。固定的。我在工作中(我是一名.NET开发人员)进行了大量的代码讨论之后写了这篇文章。我将对此进行投票,因为它帮助了我。但这真的让我暴躁。
type Status struct {
Status string
Node_id string
}
type Meta struct {
To string
From string
Id string
EntryCount int64
Size int64
Depricated bool
}
type Mydata struct {
Metadata Meta
Status []Status
}