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

EZL*_*ner 1 c# xml json json.net

使用Newtonsoft的.Net库将JSON转换为XML,有没有办法将特定的JSON元素转换为XML属性?

例如,采用以下JSON:

{
    "array": {
        "item": [
            1,
            2,
            3
        ],
        "length": 3
    }
}
Run Code Online (Sandbox Code Playgroud)

并将其转换为:

<array length="3">
    <item>1</item>
    <item>2</item>
    <item>3</item>
</array>
Run Code Online (Sandbox Code Playgroud)

谢谢.

Rob*_*b G 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; }
}
Run Code Online (Sandbox Code Playgroud)

然后使用您的Json序列化程序反序列化,然后使用Xml序列化程序将序列化JsonToXmlTranslationObject到您的XML中.