Подтвердить что ты не робот

Как проверить, имеет ли объект json какое-либо свойство

В Java есть хороший метод has, который позволяет проверить, содержит ли json-объект ключ или нет. Я использую его так:

JSONObject obj = ....; // <- got by some procedure
if(obj.has("some_key")){
    // do something
}

Я не мог найти такую ​​же классную функциональность в библиотеке newtonsoft.json для C#. Итак, интересно, какие альтернативы. Спасибо!

4b9b3361

Ответ 1

Просто используйте obj [ "proprty_name" ]. Если свойство не существует, оно возвращает null

if(obj["proprty_name"] != null){
    // do something
}

Ответ 2

Вы можете попробовать следующее:

IDictionary<string, JToken> dict = x;
if (dict.ContainsKey("some_key"))

так как JSONObject реализует IDictionary<string, JToken>. Вы можете сослаться на MSDN для деталей

Ответ 3

using Newtonsoft.Json.Linq;

dynamic d = JObject.Parse(jsonstring);

    if (d.propertyname != null ) {
      // do your stuff 
        }

Ответ 4

Используйте этот JToken.ContainsKey() Это должно работать.