use*_*18s 9 c# xml json 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>
Run Code Online (Sandbox Code Playgroud)
当我尝试将其序列化为json时,string json = JsonConvert.SerializeXmlNode(xml);它会忽略名称空间
{
"person": {
"@id": "1",
"name": "Alan",
"url": "http://www.google.com",
"role": [
"Admin"
]
}
}
Run Code Online (Sandbox Code Playgroud)
当我将它反序列化回xml时XmlDocument xml = JsonConvert.DeserializeXmlNode(json),我得到以下内容:
<person id='1'>
<name>Alan</name>
<url>http://www.google.com</url>
<role>Admin</role>
</person>
Run Code Online (Sandbox Code Playgroud)
我该如何保留json:Array属性?
有重载DeserializeXmlNode接受名为的布尔标志writeArrayAttribute.这就是你需要的:
XmlDocument xml = JsonConvert.DeserializeXmlNode(json, null, true);
Run Code Online (Sandbox Code Playgroud)
生产:
<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>
Run Code Online (Sandbox Code Playgroud)
这在语义上与原始xml相同.
| 归档时间: |
|
| 查看次数: |
1346 次 |
| 最近记录: |