【发布时间】:2018-02-09 02:40:45
【问题描述】:
我输入的 json 数据是这样的(无法更改,来自外部资源):
[{
"Url": "test.url",
"Name": "testname"
},{
"FormName": "Test - 2018",
"FormNumber": 43,
"FormSlug": "test-2018"
}]
我有两个结构总是匹配数组中的数据:
type UrlData struct{
"Url" string `json:Url`
"Name" string `json:Name`
}
type FormData struct{
"FormName" string `json:FormName`
"FormNumber" string `json:FormNumber`
"FormSlug" string `json:FormSlug`
}
显然下面的代码将不起作用,但是否可以在顶层(或其他)声明如下内容:
type ParallelData [
urlData UrlData
formData FormData
]
【问题讨论】:
-
就像关于结构标签的一般说明,a)它们在写入时是无效的,它应该是例如
json:"Url"(注意引号)和 b) 它们完全没有必要,JSON 中字段的默认名称是结构中字段的名称,因此显式给出相同名称的结构标记是多余的。跨度>