doushu7588 2017-06-26 07:47
浏览 120
已采纳

序列化的内容是否严格按照定义使用encoding / json包的顺序?

I use encoding/jsonto serialize struct. I'm confused about the output of json.Marshal function. Does the serialized field content strictly follow the order in the struct definition?

e.g. Here is a struct definition

type MyStruct struct {
    Field1  string
    Field2  string
}

could the output be {"Field2":"field2","Field1":"field1"}? Since if the output struct fields out of order, the hash of the serialized content will be uncertain.

  • 写回答

2条回答 默认 最新

  • duanlun4411 2017-06-26 08:15
    关注

    The current implementation is deterministic, e.g. for structs see https://golang.org/src/encoding/json/encode.go#L629 which gives struct order (and maps are by sorted keys).

    But as this is not guaranteed by the documentation you should consider this an implementation detail.

    If you want to hash the output you'll face more problems, e.g. there are several equivalent representations of characters in strings and JSON has no notion of an int (floats only). It really depends on what you try to do wirh that hash.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私