引用此示例使用" json:Array":Converting between JSON and XML
我有两个问题:
命名空间必须是" json"?即如果ns2匹配回来
"xmlns:ns2='http://james.newtonking.com/projects/json'"
那会有用吗?
可以省略命名空间吗?我可以把" Array =' true'"?
我即将尝试通过反复试验来测试,但想到也许有人会知道答案,或者将来有人想知道。
并不重要,但我的XML是由BizTalk 2010生成的,我使用WCF CustomBehavior按如下方式调用NewtonSoft:
private static ConvertedJSON ConvertXMLToJSON(string xml)
{
// To convert an XML node contained in string xml into a JSON string
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
ConvertedJSON convertedJSON = new ConvertedJSON();
convertedJSON.JSONtext = JsonConvert.SerializeXmlNode(doc, Newtonsoft.Json.Formatting.None);
convertedJSON.rootElement = doc.DocumentElement.Name;
return convertedJSON;
}
答案 0 :(得分:1)
看起来命名空间必须与它们提供的完全相同:
string xmlToConvert2 = "<myRoot xmlns:json='http://james.newtonking.com/projects/json'><MyText json:Array='true'>This is the text here</MyText><Prices><SalesPrice>10.00</SalesPrice></Prices></myRoot>";
string strJSON2 = ConvertXMLToJSON(xmlToConvert2);
与普通xml一样,名称空间前缀可以是任何值。以下内容同样有效。
string xmlToConvert3 = "<myRoot xmlns:abc='http://james.newtonking.com/projects/json'><MyText abc:Array='true'>This is the text here</MyText><Prices><SalesPrice>10.00</SalesPrice></Prices></myRoot>";
string strJSON3 = ConvertXMLToJSON(xmlToConvert3);