c# - 保留 json :Array attribute when converting XML to JSON to XML

标签 c# json xml json.net

我有一段 XML 看起来像

<person xmlns:json='http://james.newtonking.com/projects/json' id='1'>
   <name>Alan</name>
   <url>http://www.google.com</url>
   <role json:Array='true'>Admin</role>
</person>

当我尝试将它序列化为 json string json = JsonConvert.SerializeXmlNode(xml); 它会忽略命名空间

 {
  "person": {
    "@id": "1",
    "name": "Alan",
    "url": "http://www.google.com",
    "role": [
      "Admin"
    ]
  }
}

当我将其反序列化回 xml XmlDocument xml = JsonConvert.DeserializeXmlNode(json) 时,我得到以下信息:

<person id='1'>
 <name>Alan</name>
  <url>http://www.google.com</url>
  <role>Admin</role>
</person>

如何保留 json:Array 属性?

最佳答案

DeserializeXmlNode 的重载,它接受名为 writeArrayAttribute 的 bool 标志。这就是您所需要的:

XmlDocument xml = JsonConvert.DeserializeXmlNode(json, null, true);

产生:

<person id="1">
    <name>Alan</name>
    <url>http://www.google.com</url>
    <role xmlns:json="http://james.newtonking.com/projects/json" json:Array="true">Admin</role>
</person>

这在语义上与原始 xml 相同。

关于c# - 保留 json :Array attribute when converting XML to JSON to XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48763666/

相关文章:

c# - 带通滤波器组

c# - 自定义 API 要求

javascript - 我的 Node js 项目中的全局变量出现问题

JavaScript 数据验证器?

java - 如何创建一个包含 ViewPager 的折叠工具栏?

C# MySQL NotScalarQuery 方法在创建函数或过程时出错

c# - 检查一个字符串是否可以由C#中另一个字符串的字符组成

json - 如何通过execute-actions-email通过keyclaok admin rest api更新密码

xml - clojure.xml/emit 发生了什么?

xml - 在unix中解析xml文件