我正在开发一个 Go API,它可以接收由 JSON 对象数组组成的 POST。POST 的结构类似于:
[
{
"name":"Las Vegas",
"size":14
},
{
"valid": false,
"name":"Buffalo",
"size":63
}
]
假设我有以下结构:
type Data {
Valid bool
Name string
Size float64
}
我想创建一堆Datas 并Valid设置为true任何时候它实际上并未在 JSON 中指定为false. 如果我只做一个,我可以在 Go 中解析 JSON 时使用如何指定默认值,但是对于未知数量的它们,我唯一能想到的是:
var allMap []map[string]interface{}
var structs []Data
for _, item := range allMap {
var data Data
var v interface{}
var ok bool
if v, ok := item["value"]; ok {
data.Valid = v
} else {
data.Valid = true
}
id v, ok := item["name"]; ok {
data.Name = v
}
...
structs = append(structs, data)
}
return structs
现在我实际使用的结构有 14 个字段,其中一些具有我想分配默认值的值,其他的可以留空,但所有这些都必须使用这种方法进行迭代。
有没有更好的办法?
九州编程
白衣染霜花
相关分类