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

本文关键字:xml 属性 序列化 Net 复杂 对象 Json | 更新日期: 2023-09-27 17:57:12

假设我有一个看起来像这样的 Json 对象:

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

我想调用JsonConvert.DeserializeXmlNode()但希望生成的 XML 如下所示:

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

目前Value正在反序列化为 xml 元素作为 Phone 的子元素,但我希望它是 Phone 的 XML 值。有没有办法使用 Json.Net 来做到这一点,比如一个特殊的运算符,告诉它这样反序列化它,而不必创建自定义序列化程序?任何帮助都会得到重视。

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

我刚刚想通了。 使用

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

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