如何将JSON属性转换为XML作为xml元素的属性

时间:2013-08-17 22:40:35

标签: c# xml json json.net

使用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>

感谢。

1 个答案:

答案 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中。