将XML转换为JSON并将XML转换为XML时保留json:Array属性 [英] Keep json:Array attribute when converting XML to JSON to XML
本文介绍了将XML转换为JSON并将XML转换为XML时保留json:Array属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一段看起来像
<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);
时,它将忽略名称空间
When I try to serialize it to json string json = JsonConvert.SerializeXmlNode(xml);
it ignores namespaces
{
"person": {
"@id": "1",
"name": "Alan",
"url": "http://www.google.com",
"role": [
"Admin"
]
}
}
,当我反序列化回xml XmlDocument xml = JsonConvert.DeserializeXmlNode(json)
时,得到以下信息:
and when I deserialize it back to xml XmlDocument xml = JsonConvert.DeserializeXmlNode(json)
, I get the following:
<person id='1'>
<name>Alan</name>
<url>http://www.google.com</url>
<role>Admin</role>
</person>
如何保留json:Array
属性?
推荐答案
DeserializeXmlNode
有重载,它接受名为writeArrayAttribute
的布尔标志.那就是你所需要的:
There is overload of DeserializeXmlNode
which accepts boolean flag named writeArrayAttribute
. That's what you need:
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相同.
Which is semantically identical to original xml.
这篇关于将XML转换为JSON并将XML转换为XML时保留json:Array属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文