关于ObjectNode的序列化问题
之前一直是用fastjson1.0做序列化,因为今天项目引入了一个工作流demo,然后发现它的返回格式是ObjectNode,结果序列化后得到的不是一个json串,而是一个字符串,看了下1.0的代码,是对ObjectNode直接转成了String,这个问题我看之前也有人提过。
然后我将fastjson升级到2.0,然后做了以下配置
结果最后报了栈溢出
请问有没有比较好的解决方案?
原提问者GitHub用户memoryTravel
问题已修复,请帮忙用2.0.19-SNAPSHOT验证 https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson2/fastjson2/2.0.19-SNAPSHOT/
https://github.com/alibaba/fastjson2/releases/tag/2.0.19 请用新版本
原回答者GitHub用户wenshao
可以尝试使用fastjson的版本2.0及以上,这些版本支持将ObjectNode序列化成JSON字符串。具体实现可以参考以下代码示例:
ObjectMapper mapper = new ObjectMapper(); //实例化一个ObjectMapper对象 ObjectNode objectNode = mapper.createObjectNode(); //创建一个ObjectNode对象 objectNode.put("name", "Jack"); //设置ObjectNode的属性 objectNode.put("age", 20); String jsonStr = mapper.writeValueAsString(objectNode); //将ObjectNode序列化为JSON字符串 System.out.println(jsonStr); //输出序列化后的JSON字符串 以上代码会将一个包含两个属性的ObjectNode对象序列化为JSON字符串,输出结果为:
{"name":"Jack","age":20} 可以看到,ObjectNode对象已经成功被序列化成了JSON字符串。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。