我有这个WPF应用程序,它从REST Web服务获取数据并返回JSON数据。然后,此数据将转换为xml。稍后,此xml文件将转换回JSON,以便与调用相同功能的REST Web服务中的新JSON数据进行比较。我该怎么做呢?
这是我所做的示例:
HTTPGet req = new HTTPGet();
req.Request("http://restservice//function");
string str= req.ResponseBody;
StringBuilder xmlTemplate = new StringBuilder("{\"?xml\":{\"@version\": \"1.0\",\"@standalone\": \"no\"},\"root\":REPLACE }");
StringBuilder json = xmlTemplate.Replace(Constants.Constants.XMLREPLACEVAL, str); //this so that it will be same with the JObject from XML file
JObject jObject1 = JObject.Parse(json.ToString());
XmlDocument doc = new XmlDocument();
string xml = File.ReadAllText("json.xml");
doc.LoadXml(xml);
string jsonText = JsonConvert.SerializeXmlNode(doc);
JObject jObject2 = JObject.Parse(jsonText);
if(jObject1.Equals(jObject2))
//DO SOMETHING
最佳答案
看来JObject没有覆盖Equals方法。尽管如此,JObject继承了JToken类,并且JToken具有静态方法DeepEquals,该方法可用于确定一个JToken是否等于另一个JToken。因此,您可以执行以下操作:
if (JToken.DeepEquals(jObject1, jObject2))
{
//DO SOMETHING
}
关于c# - 比较两个JObjects或JArray,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6815006/