使用Newtonsoft的.Net库将JSON转换为XML,有没有办法将特定的JSON元素转换为XML属性?
例如,采用以下JSON:
{
"array": {
"item": [
1,
2,
3
],
"length": 3
}
}
并将其转换为:
<array length="3">
<item>1</item>
<item>2</item>
<item>3</item>
</array>
感谢。
答案 0 :(得分:5)
您可以使用@作为属性的前缀并将它们放在对象的顶部吗?它在文档中说:
属性以@为前缀,应位于开头 对象
看起来像"@length": "3",
,用于定义名为“length”的属性
或者,您可以将JSON反序列化为对象,然后将其重新序列化为Xml:
[XmlRoot(ElementName="array")]
class JsonToXmlTranslationObject {
[XmlElement(ElementName="item")]
public int[] item { get; set; }
[XmlAttribute]
public int length { get; set; }
}
然后使用您的Json序列化程序对其进行反序列化,然后使用Xml序列化程序将JsonToXmlTranslationObject
序列化到您的XML中。