【发布时间】:2021-03-06 19:17:55
【问题描述】:
我正在尝试使用 Java Jackson 库将 XML 数据转换为 JSON。截至目前,我能够将 XML 转换为 JSON,但我想通过保留其中的内部值来删除特定的 XML 标记。
假设我的 XML 是:
<?xml version="1.0"?>
<Company>
<Employee>
<extension>
<FirstName>Tanmay</FirstName>
<LastName>Patil</LastName>
<ContactNo>1234567890</ContactNo>
</extension>
</Employee>
</Company>
根据要求,我希望我的 JSON 是:
{
"Employee": {
"FirstName": "Tanmay",
"LastName": "Patil",
"ContactNo": "1234567890"
}
}
我不想在 JSON 中有 extension 标记。如何跳过此标签但保留其中的值?
以下是我使用 Jackson 将 XML 转换为 JSON 的代码:
public class ApplicationMain {
public static void main(String[] args) throws IOException, ParserConfigurationException, SAXException, URISyntaxException {
String absolutePath = Paths.get(ApplicationMain.class.getClassLoader().getResource("inputData.xml").toURI()).toFile().getAbsolutePath();
Path fileName = Path.of(absolutePath);
String xmlInputData = Files.readString(fileName);
// System.out.println(xmlInputData);
XmlMapper xmlMapper = new XmlMapper();
JsonNode node = xmlMapper.readTree(xmlInputData.getBytes());
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(node);
System.out.println(json);
}
}
【问题讨论】:
-
Underscore-java库有一个静态方法U.xmlToJson(xml)。
标签: java json xml jackson fasterxml