Ответ 1
Чтобы проверить, существует ли свойство в JObject
, вы можете использовать синтаксис квадратной скобки и посмотреть, является ли результат нулевым или нет. Если свойство существует, всегда будет возвращено значение JToken
(даже если оно имеет значение null
в JSON).
JToken token = jObject["param"];
if (token != null)
{
// the "param" property exists
}
Если у вас есть JToken
в руке, и вы хотите узнать, не является ли он пустым, это зависит от типа JToken
и того, как вы определяете "пустой". Обычно я использую метод расширения следующим образом:
public static class JsonExtensions
{
public static bool IsNullOrEmpty(this JToken token)
{
return (token == null) ||
(token.Type == JTokenType.Array && !token.HasValues) ||
(token.Type == JTokenType.Object && !token.HasValues) ||
(token.Type == JTokenType.String && token.ToString() == String.Empty) ||
(token.Type == JTokenType.Null);
}
}