我有这个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
答案 0 :(得分:36)
似乎JObject不会覆盖Equals方法。然而,JObject继承了JToken类,而JToken具有静态方法DeepEquals,可用于确定一个JToken是否等于其他JToken。所以,你可以这样做:
if (JToken.DeepEquals(jObject1, jObject2))
{
//DO SOMETHING
}