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

ltp5343 · · 5128 次点击
意思是对请求体参数排序后在md5?
#5
更多评论
没有指定结构体,会按照字母排序输出的,可以像下面这样对json指定接收结构体, ``` type Ha struct { Iss int `json:"iss"` Iat int `json:"iat"` } func main() { src := `{"iss":148700047,"iat":1487000471}` var params Ha err := json.Unmarshal([]byte(src), &params) if err != nil { fmt.Printf("%v\n", err) return } p, _ := json.Marshal(params) fmt.Printf("%v\n", params) fmt.Printf("%s\n", p) } ```
#1
首先,谢谢你提供的方法。但是这个方法无法满足我们的需求。我们的需求是对http 请求体做一个md5,然后将md5值传到服务器端,服务器端会对请求体做md5,然后和客户端传递上来的md5进行比较。由于每个接口的请求body部分的内容是变化的,所以每个接口都定义这样一种struct感觉会很麻烦。
#2