我有一段 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
。这就是你需要的:
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 相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)