为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 golang 中解组 JSON

如何在 golang 中解组 JSON

Go
扬帆大鱼 2023-07-26 19:41:26
我在解组访问 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 上没有错误。
查看完整描述

1 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

你快到了。

第一个更新是创建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)

}

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


查看完整回答
反对 回复 2023-07-26
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信