如: String str = "{id:"aa",_id:"bbb"}"; PersonVO p = JSON.parseObject(str,PersonVO.class); System.out.println(p.getId()); 打印出的结果是"bbb"而不是"aa",我怀疑是你们的智能匹配功能导致的,设置了禁用智能匹配功能也没效果! public class PersonVO { private String id; private String _id; public String getId() { return id; } public void setId(String id) { this.id = id; } public String get_id() { return _id; } public void set_id(String _id) { this._id = _id; } }…
------------------ 原始邮件 ------------------ 发件人: "温绍锦"notifications@github.com; 发送时间: 2019年6月25日(星期二) 晚上8:59 收件人: "alibaba/fastjson"fastjson@noreply.github.com; 抄送: "「Spring」。"519113110@qq.com;"Author"author@noreply.github.com; 主题: Re: [alibaba/fastjson] fastjson升级到1.2.58后的巨坑VO中的_id自动将值Map到id属性中去了 (#2507) 请提供一下VO的类结构 — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.
5条答案
按热度按时间n7taea2i1#
请提供一下VO的类结构
jjhzyzn02#
如: String str = "{id:"aa",_id:"bbb"}"; PersonVO p = JSON.parseObject(str,PersonVO.class); System.out.println(p.getId()); 打印出的结果是"bbb"而不是"aa",我怀疑是你们的智能匹配功能导致的,设置了禁用智能匹配功能也没效果! public class PersonVO { private String id; private String _id; public String getId() { return id; } public void setId(String id) { this.id = id; } public String get_id() { return _id; } public void set_id(String _id) { this._id = _id; } }…
------------------ 原始邮件 ------------------ 发件人: "温绍锦"notifications@github.com; 发送时间: 2019年6月25日(星期二) 晚上8:59 收件人: "alibaba/fastjson"fastjson@noreply.github.com; 抄送: "「Spring」。"519113110@qq.com;"Author"author@noreply.github.com; 主题: Re: [alibaba/fastjson] fastjson升级到1.2.58后的巨坑VO中的_id自动将值Map到id属性中去了 (#2507) 请提供一下VO的类结构 — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.
p4rjhz4m3#
fast rubish
nx7onnlm4#
看起来更像是把 id 和 _id 认成了同一个属性。
4dbbbstv5#
遇到同样的问题。
fastjson解析 _id的时候 需要在属性的setter和getter方法上使用注解@JSONField(name="_id"),为其指定要序列化和反序列化后的属性名,否则就是泪