问题描述 大小写以及下划线问题, 在fastjson 1.2.83版本可以正常解析,但是在2.0.8 版本无法进行对象解析
环境信息
JDK信息:OracleJdk 1.8.0_311 版本信息:Fastjson2 2.0.8 重现步骤
如何操作可以重现该问题:
使用 JSONObject.parseObject(resultJson, CSJReceiveJson.class); 方法 JSON数据{"HEAD":{"RTN_MSG":"成功","RTN_VAL":"1"},"MAIN":"B2C7F2BA561B82AF2D35D51B37CCD3A4"} 出现 解析为null 错误
@Data
static class ReceiveJson {
private ReceiveHead head;
private String main;
}
@Data
static class ReceiveHead {
private Long id;
private String rtnMsg;
private String rtnVal;
}
public static void main(String[] args) {
String resultJson = "{\"HEAD\":{\"RTN_MSG\":\"成功\",\"RTN_VAL\":\"1\"},\"MAIN\":\"B2C7F2BA561B82AF2D35D51B37CCD3A4\"}";
ReceiveJson receiveJson = JSONObject.parseObject(resultJson, ReceiveJson.class);
System.out.println(receiveJson);
}
期待的正确结果
正常进行对象解析
相关日志输出
1.2.83 版本解析结果
2.0.8 版本解析结果
原提问者GitHub用户Zhao2018Mr
在2.0.x中,需要显式打开JSONReader.Feature.SupportSmartMatch
JSON.parseObject(str, Bean.class, JSONReader.Feature.SupportSmartMatch);
原回答者GitHub用户wenshao
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。