Json.Net将复杂对象序列化为Xml属性和值

时间:2016-07-15 17:32:44

标签: c# json xml json.net

让我们说我有一个看起来像这样的Json对象:

{
    "Phones": [
        {
            "Phone": {
                "Value": 123,
                "@Type": "Foo"
            }
        }
    ]
}

我想调用JsonConvert.DeserializeXmlNode(),但希望生成的XML看起来像这样:

<Phones>
    <Phone Type="Foo">123</Phone>
</Phones>

目前Value正被反序列化为Phone的子元素的xml元素,但我希望它是Phone的XML值。有没有办法使用Json.Net这样做,就像一个特殊的运算符,告诉它这样反序列化,而不必创建自定义序列化器?任何帮助都是适用的。

1 个答案:

答案 0 :(得分:2)

我只是想通了。使用

"Phone": {
      "@Type": "Foo",
      "#text": 123
 }

给了我预期的结果。 #text告诉它不要为该值创建子元素。