将 JSON 字符串转换为 Java 中的 XML 字符串

Convert JSON string to XML string in Java

我有下面的 Java class 它将以 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>

有什么问题的线索吗?谢谢。

在调用 xmlMapper.writeValue(...) 之前,您需要执行 xmlMapper.enable(SerializationFeature.INDENT_OUTPUT);。您可以删除 objectMapper.enable(SerializationFeature.INDENT_OUTPUT);,因为您正在使用 objectMapper 读取值。