簡體   English   中英

如何在 golang 中解組 JSON

[英]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)
}

https://play.golang.org/p/Sn02hwETRv1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM