JSON转换为Java中具有类型属性的XML
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON转换为Java中具有类型属性的XML相关的知识,希望对你有一定的参考价值。
我正在将C#应用程序重写为Java代码。
[有返回json的REST API。我必须将json解析为XML,但是C#库和Java用不同的方式来解析它。
如何在Java中保持type =属性?我不能使用JAXB批注,因为响应中有太多对象,并且它们可能会改变。 XML.toString(jsonObject)对我不起作用。
C#解析以这种方式完成:
XDocument.load(JsonReaderWriterFactory.CreateJsonReader(Encoding.ASCII.GetBytes(jsonString), new XmlDictionaryReaderQuotas()));
C#结果:
<root type="object">
<Items type="array">
<item type="object">
<Name type="string">test</Name>
<Total type="number">12.8000000</Total>
<CurrencyCode type="string">CHF</CurrencyCode>
<Country type="string">CH</Country>
</item>
</Items>
</root>
Java结果:
<root>
<Items>
<item>
<Name>test</Name>
<Total>12.8000000</Total>
<CurrencyCode>CHF</CurrencyCode>
<Country>CH</Country>>
</item>
</Items>
</root>
答案
您可以尝试以下方法:
string filePath = "YourPath";
//Example json
string jsonString = @"{""root"":{""Items"":{""item"":{""Name"":""test"",""Total"":""12.8000000"",""CurrencyCode"":""CHF"",""Country"":""CH""}}}}";
XmlDocument doc = (XmlDocument)JsonConvert.DeserializeXmlNode(jsonString);
doc.Save(filePath);
结果:
<root>
<Items>
<item>
<Name>test</Name>
<Total>12.8000000</Total>
<CurrencyCode>CHF</CurrencyCode>
<Country>CH</Country>
</item>
</Items>
</root>
以上是关于JSON转换为Java中具有类型属性的XML的主要内容,如果未能解决你的问题,请参考以下文章