Comparer deux JObjects ou JArray
J'ai cette application WPF qui récupère les données à partir de services web REST et renvoie les données JSON. Ensuite, ces données seront converties au format xml. Ce fichier xml, plus tard, sera reconverti en JSON pour être comparées avec les nouvelles données JSON à partir de services web REST appelant même fonction. Comment puis-je faire cela?
Voici un échantillon de ce que j'ai fait:
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
- Qu'avez-vous essayé jusqu'à présent? Le code, en particulier, que vous rencontrez des problèmes avec?
Vous devez vous connecter pour publier un commentaire.
Il semble que JObject ne pas remplacer méthode Equals. Néanmoins, JObject hérite JToken classe et JToken a méthode statique DeepEquals, qui peut être utilisé pour déterminer si un JToken est égal à d'autres JToken. Ainsi, vous pouvez faire quelque chose comme ceci: