从Webservice获取到的xml转换为JSON时会出错!发现是记录为一条的时候会报错。
1.这是正确转换的xml内容
2.这是转换错误的xml的内容
3.以上的区别就是List是不是数组(注意有无[ ])。为了简化代码,决定默认克隆第一条记录。这样可以保证最少有两条记录。只是在操作数据的时候,把重复的数据处理掉就行了。
如果有更好的方法请告诉我,谢谢
下面是克隆node节点的代码
var result = response2.Body.payload;
XmlDocument xml = new XmlDocument();
xml.LoadXml(result);
XmlNode root1 = xml.SelectSingleNode("message");
XmlNode root = root1.SelectSingleNode("Data");
//由于节点中只有一条记录转换JSON不是数组会出错。所以默认克隆第一个节点。有两条记录转换JSON就正常了 code by easyboot 2022-02-12
if (root.FirstChild != null)
{
XmlNode oldNode = root.FirstChild;
XmlNode newNode = oldNode.CloneNode(true);
root.AppendChild(newNode);
}
string json = JsonConvert.SerializeXmlNode(root);
Debug.WriteLine(json.Length);
Debug.WriteLine(json);
jdp = JsonConvert.DeserializeObject<JSONDataPatient>(json);