如果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