我有下面的Java类,它将接受JSON文件名作为输入,并将其转换为XML,然后在相同的路径中创建一个新的XML文件。
public void convertJsonToXml(String jsonFilePath) {
try {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
Products products = objectMapper.readValue(Paths.get(jsonFilePath).toFile(), Products.class);
XmlMapper xmlMapper = new XmlMapper();
xmlMapper.writeValue(new File("./metadata/FilteredPatches.xml"), products);
}
catch (JsonMappingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
catch (JsonProcessingException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}但是新的XML文件失去了有效的XML格式,并在一行中打印XML数据,如下所示
<Products xmlns=""><product><product><name>FileZilla 3</name><patchuid>0003931b-0000-0000-0000-000000000000</patchuid><language>0</language></product><product><name>Notepad++ 6</name><patchuid>00038b09-0000-0000-0000-000000000000</patchuid><language>0</language></product><product><name>UltraVNC 1.2.4.0 x86</name><patchuid>00035767-0000-0000-0000-000000000000</patchuid><language>0</language></product></product></Products>有什么问题的线索吗?谢谢。
发布于 2021-07-14 20:45:27
在调用xmlMapper.writeValue(...)之前,您需要执行xmlMapper.enable(SerializationFeature.INDENT_OUTPUT);。而且您可以删除objectMapper.enable(SerializationFeature.INDENT_OUTPUT);,因为您使用objectMapper来读取值。
https://stackoverflow.com/questions/68376922
复制相似问题