XML字符串转JSON字符串、JSON数组转实体类List集合

这篇博客介绍了如何在Java中将XML字符串转换为JSON格式,并处理多层级的数据结构。文章提到了引入的依赖包,如xom、xml-apis、json-lib和fastjson,并展示了将XML字符串解析为JSON对象的代码示例。通过处理返回的内容,将XML结构转换为JSONArray,并将其转换为对应的实体类对象列表。此外,还展示了如何处理多层级的数组转换,包括使用正则表达式进行替换操作。
摘要由CSDN通过智能技术生成
1.相关jar引入
<dependency>
        <groupId>xom</groupId>
        <artifactId>xom</artifactId>
        <version>1.2.5</version>
    </dependency>
    <dependency>
        <groupId>xml-apis</groupId>
        <artifactId>xml-apis</artifactId>
        <version>1.4.01</version>
    </dependency>
    <dependency>
        <groupId>net.sf.json-lib</groupId>
        <artifactId>json-lib</artifactId>
        <version>2.4</version>
        <classifier>jdk15</classifier>
    </dependency>
            <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
    </dependency>
2.代码引入
    String result = xmlStrToJsonStr("<?xml version=\"1.0\" encoding=\"utf-8\"?><root><!-- 处理结果代码(AA成功AE失败) --><processResultCode>AA</processResultCode><!-- 处理结果说明 --><processResult>成功</processResult><returnContents><returnContent><!--机构代码--><orgCode>机构代码</orgCode><!--院区代码--><districtCode>院区代码</districtCode><!--科室代码--><deptCode>科室代码</deptCode><!--科室名称--><deptName>科室名称</deptName><!--科室级别--><deptGrade>科室级别</deptGrade><!--上级科室代码--><upperDeptCode>上级科室代码</upperDeptCode><!--上级科室名称--><upperDeptName>上级科室名称</upperDeptName><!--病区代码--><wardCode>所在病区</wardCode><!--病区名称--><wardName>所在病区</wardName><!--科室属性--><deptAttr>科室属性</deptAttr><!--核定床位数--><checkBedCount>核定床位数</checkBedCount><!--有效标志--><validFlag>有效标志</validFlag><!--拼音首码--><spellCode>拼音码</spellCode><!--五笔音首码--><wbzxCode>五笔音首码</wbzxCode><!--科室类型代码--><deptTypeCode>科室类型代码</deptTypeCode><!--科室类型名称--><deptTypeName>科室类型名称</deptTypeName><!--科室特殊标记--><specialDeptCode>科室特殊标记</specialDeptCode><!--联系电话--><deptPhone>联系电话</deptPhone><!--科室物理地址--><deptLocation>科室物理地址</deptLocation><!--科室简称--><deptShortName>简称</deptShortName><!--备注--><remark>备注</remark><!--科室简介--><deptIntro>科室简介</deptIntro><!--科室别名--><deptAlias>科室别名</deptAlias><!--专业科室代码--><professionalDeptCode>专业科室代码</professionalDeptCode><!--专业科室名称--><professionalDeptName>专业科室名称</professionalDeptName></returnContent></returnContents></root>");
    result = xmlSerializer.read(result).toString();
    JSONArray array = JSON.parseArray("[]");
    JSONObject jsonObject = JSON.parseObject(result);
    //获取Array数组
       Object json = jsonObject.get("returnContents");
    if (json instanceof JSONObject) {
        array.add(jsonObject.getJSONObject("returnContents").getJSONObject("returnContent"));
    }
    if (json instanceof JSONArray) {
        array = jsonObject.getJSONArray("returnContents");
    }
  //转换成List<实体类对象>
      List<实体类> resultList = array.toJavaList(实体类.class);
存在多层级需要转为数组

//投机取巧的方法、参考一下就好,再需要变为数据加一个对象,后面再把对象删除。
result3与上面result值一样
Map<String, String> placeTag = new HashMap<>();
placeTag.put("",1");
for (String key : placeTag.keySet()) {
result3 = result3.replaceAll(key, placeTag.get(key));
}
result3= xmlStrToJsonStr(result3);
System.out.println(result3);
result3=result3.replaceAll("\{“a”:“1”\},","");
System.out.println(result3);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值