json字符串经过json.Unmarshal与json.Marshal出来字符串与最初的字符串顺序不一致问题

ltp5343 · 2017-04-29 10:30:38 · 5323 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2017-04-29 10:30:38 的主题,其中的信息可能已经有所发展或是发生改变。

func main() {
    src := `{"iss":"magic-ios-1.0.0","iat":1487000471,"jti":"4861ed10","rbd":"dbac2c5f","uri":"/auth/hello","ttu":""}`
    var params interface{}
    err := json.Unmarshal([]byte(src), &params)
    if err != nil {
        fmt.Printf("%v\n", err)
        return
    }
    p, _ := json.Marshal(params)
    fmt.Printf("%v, %s\n", params, p)
}

问题描述:

  1. json原始字符串
    src := {"iss":"magic-ios-1.0.0","iat":1487000471,"jti":"4861ed10","rbd":"dbac2c5f","uri":"/auth
    /hello","ttu":""}
    
  2. 经过json.Unmarshal,再次 json.Marshal的输出结果与原始字符串不一致,如下:
    map[iss:magic-ios-1.0.0 iat:1.487000471e+09 jti:4861ed10 rbd:dbac2c5f uri:/auth/hello ttu:], {"iat":1.487000471e+09,"iss":"magic-ios-1.0.0","jti":"4861ed10","rbd":"dbac2c5f","ttu":"","uri":"/auth/hello"}
    

有人遇到这种问题嘛?json串字段顺序变了,原始字符串md5值与一次转换后的字符串md5值就不一致了。


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

5323 次点击  
加入收藏 微博
7 回复  |  直到 2017-05-09 09:35:50
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传