【问题标题】:JAXB XML File to JSONJAXB XML 文件到 JSON
【发布时间】:2016-03-09 23:34:18
【问题描述】:

我用 JAXB 创建了一个 XML 转储文件,然后经过多次转换,得到一个我想要的格式的 XML 文件。现在我想使用 JAXB 将这个经过正确转义和编码的 XML 文件转换为 JSON 文件。

我不是试图将对象编组为 JSON,而是将文件的内容编组。

这会将我的对象编组为 json:

    JAXBContext jc = JAXBContext.newInstance(Employee.class);
    Marshaller marshaller = jc.createMarshaller();
    marshaller.setProperty(MarshallerProperties.MEDIA_TYPE, "application/json");
    marshaller.setProperty(MarshallerProperties.JSON_INCLUDE_ROOT, true);
    marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
    marshaller.marshal(employee, System.out);

我如何为由 JAXB 和转换创建的文件执行此操作,它称为 employeeFormatC.xml

它需要来自文件而不是对象的原因是因为我使用各种样式 xslt 来格式化原始 xml 输出。当我可以转换一个已经生成并格式化的 xml 时,我看不到为 json 这样做的理由。

【问题讨论】:

    标签: java json xml jaxb


    【解决方案1】:

    JAXB 并非旨在将 XML 直接转换为 JSON。您只能使用 JAXB 将表示 (XML/JSON) 编组和解组为 Java 对象。

    如果您想使用 JAXB 将转换后的 XML 转换为 JSON,则应创建反映转换后的 XML 的 Java 对象,将 XML 解组为这些对象,然后编组为 JSON。

    查看this question 了解非 JAXB 解决方案。

    【讨论】:

    • 好吧,假设我创建了一个 JSON 数据转储,我仍然需要转换它,就像我对 xml 所做的那样。我该怎么办?我假设我不能使用 XSLT。我可以解组我完成的 XML,然后将其编组为 JSON 吗?
    • "我可以解组我完成的 XML,然后将其编组为 JSON 吗?"是的,这就是我所推荐的。创建代表已完成 XML 的 Java 对象,解组已完成的 XML,然后编组为 JSON。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多