如何用java递归生成带children的json串

如何用java递归生成带children的json串,第1张

这个问题有点没意义,因为java已经有相应的jar了,不论是阿里的fastjson,还是gson,又或者是jackson,都是已经很成熟的jar了。如果非要自己去写的话,就需要用到反射了。简单来说,就是获取对象的所有属性。复杂说的话,要判断对象的属性,判断属性类型,判断属性值是否为null,判断对象是否是有transient修饰,判断字符串里面是否有双引号等等。然后通过StringBuffer或是StringBuilder去拼接字符串,来生成json串,至于是StringBuffer还是StringBuilder就看你的需要再决定了

string类型如果要转换成json的话,就需要写成这样的形式,如下:
String jsonStr ="{'id':'11','parentId':'root','refObj':{'existType':'exist','deptType':'emp','treeNodeType':'dept'}}";
JSONObject jsonObj = new JSONObject(jsonStr);
JSONObject refObj = new JSONObject(jsonObjgetString("refObj"));
String existType = refObjgetString("existType");
Systemoutprintln(existType);
jar使用的是orgjsonjar

在Java中,可以使用Jackson库将Java对象转换为JSON格式。例如,假设有一个名为person的Person对象,可以使用以下代码将其转换为JSON格式:
import comfasterxmljacksondatabindObjectMapper;ObjectMapper mapper = new ObjectMapper();String json = mapperwriteValueAsString(person);
这段代码中,ObjectMapper类是Jackson库中的一个核心类,用于将Java对象转换为JSON格式。首先创建一个ObjectMapper对象,然后调用其writeValueAsString方法将Person对象转换为JSON格式的字符串。最后将该字符串返回即可。
需要注意的是,如果要将Java对象转换为JSON格式,需要为该对象添加getter方法,以便ObjectMapper类能够访问该对象的属性。另外,需要在pomxml文件中添加Jackson库的依赖,例如:
<dependency><groupId>comfasterxmljacksoncore</groupId><artifactId>jackson-databind</artifactId><version>2123</version></dependency>

跟你讲一下思想吧,为了通用我们需要将问题考虑为并不是合并2个json,而是合并n个json
首先利用json包解析已知n个json字符串使其成为Map,
创建新空的jsonA对象,开始对n个已知json使用深度遍历,
深度遍历的开始点将会把jsonA的指针初始化,深度遍历第n个json的每个节点,jsonA的指针随之变动,若jsonA指针指向为空,则与其遍历的第n个json节点进行赋值。
即可对json进行合并。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13389788.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存