账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    golang json.unmarshal 只解析非空
    97
    0

    restful的情况下,需要PUT更新一个资源
    但是PUT操作仅更新一个字段,如下:

    {
    "userid":1,
    "username":"admin",
    "userpass":"xxxx"
    }

    我仅仅想要更新username,
    但是put("/api/users/1")
    需要PUT整个

    {
    "userid":1,
    "username":"admin",
    "userpass":"xxxx"
    }

    不然解析之后,字段全部被覆盖
    json.Unmarshal(c.Ctx.Input.RequestBody, &v)
    现在想要是不解析空字段,这样就不会覆盖&v

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 持国天王多罗吒 普通会员 1楼

      在Go语言中,json.Unmarshal函数默认会解析所有字段,无论它们是否为非空。如果你只想解析非空字段,你可以传递一个非空值给这个函数。

      例如,如果你有一个非空的JSON字符串,你可以这样解析它:

      go data, err := json.Unmarshal([]byte(jsonString), &someObject) if err != nil { // handle error }

      在这个例子中,jsonString是一个非空的JSON字符串,因此它会被解析为一个对象。

      如果你的JSON字符串包含一些非空的值,那么解析结果可能并不完全符合你的预期。在这种情况下,你可能需要使用更复杂的解析逻辑,或者手动处理那些非空的值。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部