Java解析xml文档,判断对象是一个json是jsonArray还是jsonObject

本文介绍了如何使用DOM4J和FastJSON库解析XML文档,包括读取文件、转换为JSONObject,以及处理嵌套标签和数据类型(如JSONArray和JSONObject)的示例。
摘要由CSDN通过智能技术生成

有一篇xml文档,如下:
在这里插入图片描述
现在需要解析出其中的内容,首先需要明确的是,文档是由一个个的标签嵌套形成的,例如整个xml文件是由许多DescriptorRecord标签构成, <DescriptorRecord DescriptorClass = "1">xxxxxxxxxx</DescriptorRecord>

现在需要解析出每个DescriptorRecord 里面嵌套的xxxx各层级标签里面的内容,
导入的依赖有:

		<dependency>
            <groupId>org.dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>2.1.1</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.73</version>
        </dependency>

解析代码如下:

 File file=new File("D:\\zoom\\字典相关\\desc2023\\test.xml");
 SAXReader saxReader = new SAXReader();
 Document doc = saxReader.read(file);
 JSONObject jsonObject = XmlUtil.xmlToJson(doc.asXML());

首先将文件读取并且解析为doc,再转成JSONObject对象,
再获取DescriptorRecord标签下的内容
在这里插入图片描述
可以看到,整个xml文档里面,有5个DescriptorRecord嵌套,
在这里插入图片描述
通过“content”这个key,获取下面的内容,解析出来是一个JSONObject对象,
有的时候一个标签嵌套的是一个JSONObject,有的时候是一个JSONArray,需要进行判断:if (treeNumberList.get("TreeNumber") instanceof JSONArray)
即对于treeNumberList获取key为TreeNumber是一个对象,还是一个数组,再进行取值。

在debug的时候,结合xml格式,来判断下一步是怎么取值,

在这里插入图片描述

fastjson的用法如下:

获取JSONObject 对象

JSONObject content = pubmed.getJSONObject("content");

获取数组对象

JSONArray treeNumber = treeNumberList.getJSONArray("TreeNumber");

通过String这个key来取值

 String termName2 = content3.getString("String");

通过Term来获取对象

termList.get("Term")
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值