使用golang脚本,我在下面具有结构类型和json
结构
admin
type Admin struct {
Id string `json:"id"`
Status int `json:"status"`
}
json
jsonData
{
"id": "uuid"
}
当我对上面的jsonData使用json.Unmarshal(jsonData, &admin)
时没有status
值
admin.Status
的默认值为0
。我如何检查admin.Status
是否未设置?
非常感谢!
答案 0 :(得分:3)
在Status
字段中使用一个指针:
package main
import (
"fmt"
"encoding/json"
)
type Admin struct {
Id string `json:"id"`
Status *int `json:"status"`
}
func main() {
b := []byte(`{"id": 1}`)
r := new(Admin)
json.Unmarshal(b, r)
fmt.Println(r.Status)
b2 := []byte(`{"id": 1, "status": 2}`)
r2 := new(Admin)
json.Unmarshal(b2, r2)
fmt.Println(*r2.Status)
}
当它不在Json中时,指针将为nil。