【问题标题】:How to cause a JSON property to be converted to XML as an attribute of an xml-element如何将 JSON 属性转换为 XML 作为 xml 元素的属性
【发布时间】:2013-08-17 22:40:34
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: c# xml json json.net


    【解决方案1】:

    你能在属性前面加上@,然后把它们放在对象的顶部吗?它在文档中说:

    属性以 @ 为前缀,并且应该在 对象。

    看起来像:"@length": "3", 用于定义名为“长度”的属性

    或者,您可以将 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。

    【讨论】:

    猜你喜欢
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 2010-10-13
    • 2012-05-30
    • 2020-11-08
    • 2016-08-09
    • 2018-09-22
    相关资源
    最近更新 更多