fastjson 1.2.7 版本:JSON.parseObject(result, User.class, Feature.OrderedField); fastjson2 2.0.1版本: Feature.OrderedField 找不到这个属性,请教一下大佬,替换方案是什么。
原提问者GitHub用户18670032796
在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将驼峰命名转换为下划线命名。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。