开发者社区> 问答> 正文

Feature.OrderedField 有没有替换方案

fastjson 1.2.7 版本:JSON.parseObject(result, User.class, Feature.OrderedField); fastjson2 2.0.1版本: Feature.OrderedField 找不到这个属性,请教一下大佬,替换方案是什么。

原提问者GitHub用户18670032796

展开
收起
大圣东游 2023-04-21 12:11:19 510 0
2 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    在FastJson2中,Feature.OrderedField已经被移除了,可以通过以下方式实现有序解析:

    String jsonStr = "{'id':1,'name':'John','age':18}"; ParserConfig config = new ParserConfig(); config.setPropertyNamingStrategy(PropertyNamingStrategy.SnakeCase); JSONObject jsonObject = JSON.parseObject(jsonStr, JSONObject.class, config, JSON.DEFAULT_PARSER_FEATURE, Feature.OrderedField); LinkedHashMap<String, Object> map = new LinkedHashMap<>(); for (Map.Entry<String, Object> entry : jsonObject.entrySet()) { map.put(entry.getKey(), entry.getValue()); } User user = JSON.parseObject(JSON.toJSONString(map), User.class); java 上面的代码将JSON字符串解析成JSONObject对象,并使用Feature.OrderedField保持了属性的顺序。然后将JSONObject转换成LinkedHashMap,再将LinkedHashMap转换成User对象,即可实现有序解析。需要注意的是,为了保持属性名的一致性,这里使用了PropertyNamingStrategy.SnakeCase将驼峰命名转换为下划线命名。

    2023-04-21 21:06:31
    赞同 展开评论 打赏
  • 缺省就是,所以OrderedField就不用了

    原回答者GitHub用户wenshao

    2023-04-21 15:01:00
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

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