中級 › json.Unmarshalで非公開(小文字始まり)フィールドが無視される › パターン2
json.Unmarshalで非公開(小文字始まり)フィールドが無視される
encoding/jsonパッケージは、構造体の小文字始まりの非公開フィールドを読み書きできません。
1 package main 2 3 import ( 4 "encoding/json" 5 "fmt" 6 ) 7 8 type Account struct { 9 ____ int ^ 10 } 11 12 func main() { 13 var a Account 14 json.Unmarshal([]byte(`{"age":30}`), &a) 15 fmt.Printf("%+v\n", a) 16 }
出力: {age:0}JSONは{"age":30}
空欄を埋めて実行を通す
数値フィールドでも同様で、非公開フィールドにはリフレクション経由で値を書き込めずゼロ値の0のまま残ります。
次の問題