中級 › json.Unmarshalで非公開(小文字始まり)フィールドが無視される › パターン3
json.Unmarshalで非公開(小文字始まり)フィールドが無視される
encoding/jsonパッケージは、構造体の小文字始まりの非公開フィールドを読み書きできません。
1 package main 2 3 import ( 4 "encoding/json" 5 "fmt" 6 ) 7 8 type Contact struct { 9 ______ string ^ 10 } 11 12 func main() { 13 var c Contact 14 json.Unmarshal([]byte(`{"email":"go@example.com"}`), &c) 15 fmt.Printf("%+v\n", c) 16 }
出力: {email:}JSONは{"email":"go@example.com"}
空欄を埋めて実行を通す
JSONのキーとフィールド名の文字列としての一致だけでは不十分で、Go側は公開フィールドである必要があります。
次の問題