Ich möchte einen Fehler ausgeben, wenn das Feld in JSON einen Wert von Null enthält. Wie kann ich es tun? Ich habe "encoding/json" ausprobiert. Vielleicht brauche ich eine andere Bibliothek.Wie kann ich wissen, dass das Feld auf Null gesetzt ist?
Code-Beispiel:
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)
}
}
}
Ich habe:
<nil>
<nil>
0
1
Ich möchte:
<nil>
<error>
0
1
Bitte helfen. Danke vielmals!
Warum sollte ' "Wert": null' zu einem Fehler führen? 'null' ist ein vollkommen gültiger Wert für ein Zeigerfeld und wird korrekt zu' nil' deserialisiert, was Go's 'null' ist. – Adrian
Ich schreibe Rest-api. Dies ist eine der Voraussetzungen. – Ilya
@Ilya: Dies scheint wie eine seltsame Voraussetzung für eine API, "Null" und Unset sind oft die gleiche Sache. – JimB