如果json中的字段包含null值,我想输出一个错误。我该怎么做?我尝试过“编码/ json”。也许我需要另一个图书馆。我如何知道该字段设置为空?
代码示例:
package main
import (
"encoding/json"
"fmt"
"strings"
)
type Item struct {
Value *int
}
func main() {
var jsonBlob = `[
{},
{"Value": null},
{"Value": 0},
{"Value": 1}
]`
var items []Item
err := json.NewDecoder(strings.NewReader(jsonBlob)).Decode(&items)
if err != nil {
fmt.Println("error:", err)
}
for _, a := range items {
if a.Value != nil {
fmt.Println(*a.Value)
} else {
fmt.Println(a.Value)
}
}
}
我:
<nil>
<nil>
0
1
我想:
<nil>
<error>
0
1
请帮助。非常感谢!
为什么会' “值”:null'导致一个错误? 'null'对指针字段来说是一个完全有效的值,并且正确地反序列化为'nil',这是Go的'null'。 – Adrian
我在写rest-api。这是要求之一。 – Ilya
@Ilya:对于API来说这似乎是一个奇怪的要求,null和unset通常是相同的东西。 – JimB