我有这个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/

10-11 06:33