开发者社区> 问答> 正文

fastjson 2 大小写以及下划线问题

问题描述 大小写以及下划线问题, 在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 版本解析结果

提问38.png

2.0.8 版本解析结果

提问39.png

原提问者GitHub用户Zhao2018Mr

展开
收起
飘飘斯嘉丽 2023-04-21 11:31:41 636 0
1 条回答
写回答
取消 提交回答
  • 在2.0.x中,需要显式打开JSONReader.Feature.SupportSmartMatch

    JSON.parseObject(str, Bean.class, JSONReader.Feature.SupportSmartMatch);

    原回答者GitHub用户wenshao

    2023-04-21 14:32:40
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载