我无法在golang服务中解组访问JSON字符串的值。
我阅读了golang的文档,但是示例中的JSON对象的格式都不同。
从我的api中,我得到以下JSON字符串:
{"NewDepartment":
{
"newDepName":"Testabt",
"newDepCompany":2,
"newDepMail":"Bla@bla.org"
}
}
我定义了以下数据类型:
type NewDepartment struct {
NewDepName string `json:"newDepName"`
NewDepCompany int `json:"newDepCompany"`
NewDepMail string `json:"newDepMail"`
}
type NewDeps struct {
NewDeps []NewDepartment `json:"NewDepartment"`
}
我尝试从请求主体中解组JSON并访问值,但是我没有得到任何结果
var data types.NewDepartment
errDec := json.Unmarshal(reqBody, &data)
fmt.Println("AddDepartment JSON string got: " + data.NewDepName)
但是它不包含任何字符串-不显示任何内容,但在解编组或Println时没有错误。
感谢您的帮助。
答案 0 :(得分:2)
你快到了。
第一个更新是使NewDeps.NewDeps
成为单个对象,而不是数组(根据提供的JSON)。
第二个更新是将JSON反序列化为NewDeps
,而不是NewDepartment
。
工作代码:
type NewDepartment struct {
NewDepName string `json:"newDepName"`
NewDepCompany int `json:"newDepCompany"`
NewDepMail string `json:"newDepMail"`
}
type NewDeps struct {
NewDeps NewDepartment `json:"NewDepartment"`
}
func main() {
var data NewDeps
json.Unmarshal([]byte(body), &data)
fmt.Println("AddDepartment JSON string got: " + data.NewDeps.NewDepName)
}