首页 > 解决方案 > 使用 Java 将动态 XML 转换为 JSON

问题描述

我有一个要求,XML 的标签对于不同的文件是动态的。例如:

XML 文件 1:

<?xml version="1.0" encoding="utf-8"?>
 <Order>
      <DueDate>12/25/2020</DueDate>
      <CreatedBy>User1</CreatedBy>
      <OrderType>Print</OrderType>
      <ReferenceNumber>A1234</ReferenceNumber>
 </Order>

XML 文件 2:

 <?xml version="1.0" encoding="utf-8"?>
 <Job>
      <LastDate>12/25/2020</LastDate>
      <CreatedUser>User1</CreatedUser>
      <JobType>Print</JobType>
      <TrackingNumber>A1234</TrackingNumber>
 </Job>

我想转换为 JSON 如下。JSON 结构不会发生变化。

{
   "dueDate" : "12/25/2020",
   "createdBy": "User1",
   "jobType" : "Print",
   "trackingNumber": "A1234"
}

由于不同的 XML 具有不同的格式标记,是否可以在服务器或数据库的某处为每个 xml 数据创建一个映射文件,我可以在其中引用它并进行转换?我需要一个类似于下面的映射:

XmlToJson1.properties:

dueDate=DueDate
createdBy=CreatedBy
orderType=OrderType
trackingNumber=ReferenceNumber 

XMLToJson2.properties

dueDate=LastDate
createdBy=CreatedUser
orderType=JobType
trackingNumber=TrackingNumber

我如何在 Java 中做到这一点?

任何提示会有所帮助吗?

注意:我不想在每次出现新的 XML 格式时都更改 Java 代码。

标签: javajsonxml

解决方案


推荐阅读