web-dev-qa-db-fra.com

json.net a la méthode clé?

Si ma réponse a la clé "erreur", j'ai besoin de traiter l'erreur et d'afficher une boîte d'avertissement.

Existe-t-il une méthode "haskey" dans json.net? Comme:

var x= JObject.Parse(string_my);
if(x.HasKey["error_msg"])
    MessageBox.Show("Error!")
129
SevenDays

Il suffit d'utiliser x["error_msg"]. Si la propriété n'existe pas, elle retourne null.

221
svick

JObject implémente IDictionary<string, JToken>, vous pouvez donc utiliser:

IDictionary<string, JToken> dictionary = x;
if (dictionary.ContainsKey("error_msg"))

... ou vous pouvez utiliser TryGetValue. Il implémente les deux méthodes en utilisant une implémentation d'interface explicite, vous ne pouvez donc pas les utiliser sans conversion préalable en IDictionary<string, JToken> bien que.

95
Jon Skeet

JObject.ContainsKey(string propertyName) a été créé comme méthode publique dans la version 11.0.1

Documentation - https://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_Linq_JObject_ContainsKey.htm

8
Razor