中級 › json.Unmarshalで非公開(小文字始まり)フィールドが無視される › パターン4
json.Unmarshalで非公開(小文字始まり)フィールドが無視される
encoding/jsonパッケージは、構造体の小文字始まりの非公開フィールドを読み書きできません。
1 package main 2 3 import ( 4 "encoding/json" 5 "fmt" 6 ) 7 8 type Flag struct { 9 _______ bool ^ 10 } 11 12 func main() { 13 var f Flag 14 json.Unmarshal([]byte(`{"active":true}`), &f) 15 fmt.Printf("%+v\n", f) 16 }
出力: {active:false}JSONは{"active":true}
空欄を埋めて実行を通す
bool型でもゼロ値であるfalseのまま残るため、パースが成功したのか失敗したのか気づきにくいバグになります。
次の問題