2016-03-09 135 views
0

我使用JAXB創建了一個XML轉儲文件,然後我經歷了幾次轉換,並獲得了我想要的格式的XML文件。現在我想將這個已正確轉義並編碼爲JSON文件的XML文件轉換爲JSON文件。將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。

回答

1

JAXB不打算直接將XML轉換爲JSON。您只能使用JAXB將表示(XML/JSON)編組和解組到Java對象。

如果要使用JAXB將已轉換的XML轉換爲JSON,則應該創建反映已轉換的XML的Java對象,將XML解組爲這些對象,然後編組爲JSON。

查看this question非JAXB解決方案。

+0

好的,說我創建一個JSON數據轉儲,我仍然需要轉換它,就像我對xml所做的一樣。我將如何去做這件事?我假設我不能使用XSLT。我可以解開我完成的XML,然後將它編組成JSON? – codeCompiler77

+0

「我可以解開我已完成的XML,然後將它編入JSON中嗎?」是的,這就是我所推薦的。創建表示完成的XML的Java對象,解組完成的XML,然後編組爲JSON。 – Samuel