有关json:Newtonsoft.JSON XML到JSON转换器的数组功能的详细信息

时间:2016-09-13 21:28:25

标签: json xml json.net biztalk biztalk-2010

引用此示例使用" json:Array":Converting between JSON and XML

我有两个问题:

  1. 命名空间必须是" json"?即如果ns2匹配回来 "xmlns:ns2='http://james.newtonking.com/projects/json'"那会有用吗?

  2. 可以省略命名空间吗?我可以把" Array =' true'"?

  3. 我即将尝试通过反复试验来测试,但想到也许有人会知道答案,或者将来有人想知道。

    并不重要,但我的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;
        }
    

1 个答案:

答案 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);