fastjson 反序列化顺序问题

今天做接口签名发现,签名一直不通过。大致参数格式如下

{"appId":"101",
"timestamp":1568255975,
"v":1.0,
"signature":"7603A247F657BED0B3117E174A936A99",
"body":{"mobile":"23333","nik":"xxx"}
}

我的签名规则是参数字典排序,结果发现java跟js签名出来的结果不一样。通过log 发现原来 对body 内容 顺序不一样,

js 签名是内容

body:{"mobile":"23333","nik":"xxx"}


java 签名是内容

body:{"nik":"xxx","mobile":"23333"}

我采用的是fastjson 库

 -- 此方法没有顺序
JSON.parseObject(jsonStr);

 -- 可保证顺序
JSON.parseObject(jsonStr,Feature.OrderedField);

mark 标记一下,活到老学到老。

你可能感兴趣的:(JAVA)