[英]How to unmarshall JSON in golang
我無法在我的 golang 服務中解組訪問 JSON 字符串的值。
我閱讀了 golang 的文檔,但示例中的 JSON 對象的格式都不同。
從我的 api 我得到以下 JSON 字符串:
{"NewDepartment":
{
"newDepName":"Testabt",
"newDepCompany":2,
"newDepMail":"Bla@bla.org"
}
}
在 go 我定義了以下數據類型:
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 時沒有錯誤。
謝謝您的幫助。
您快到了。
第一個更新是使NewDeps.NewDeps
成為單個 object,而不是數組(根據提供的 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)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.