Как сделать проверку если не существует элемента в json ? Есть json от стим веб апи(http://steamcommunity.com/market/priceoverview?appid=730&market_hash_name=...), который я получаю в своем проекте c#, обычно в json есть median_price, но иногда его нет(Например здесь есть - http://steamcommunity.com/market/priceoverview?appid=730&market_hash_name=Negev%20%7C%20Army%20Sheen%20%28Minimal%20Wear%29&format=json , а здесь нет http://steamcommunity.com/market/priceoverview?appid=730&market_hash_name=StatTrak™%20M4A4%20%7C%20Howl%20%28Field-Tested%29&format=json). Я бы хотел сделать проверку на его наличие.
Используйте JSON.Net, мой вам совет...
Берем JSON, который может быть и создаем на его основе класс:
public class Root
{
public bool Success { get; set; }
[JsonProperty("lowest_price")]
public string LowestPrice { get; set; }
public int Volume { get; set; }
[JsonProperty("median_price")]
public string MedianPrice { get; set; }
}
Обратите внимание на то, что название каждой переменной должно быть такое же, как и в JSON
, но не всегда это красиво в коде и для этого мы указываем JsonProperty
с именем, которое находится в JSON
- это позволит нам назвать переменную как угодно.
Имея класс под наш JSON
- мы можем сделать десериализацию:
var json = JsonConvert.DeserializeObject<Root>(StringData);
StringData
- ответ от сервера, в виде String
.
Ну и дальше спокойно работайте с данными. К примеру, если прочесть JSON
с одним значением Success
и вывести все данные на экран:
Console.WriteLine(json.Success);
Console.WriteLine(json.LowestPrice);
Console.WriteLine(json.Volume);
Console.WriteLine(json.MedianPrice);
То в ответ мы получим:
False
0
То есть говоря другими словами, при десериализации JSON
- вы получите только те данные, которые есть в файле, остальное будет иметь NULL
. И тут вы можете делать нужные вам проверки:
if (json.LowestPrice != null) //как пример...
В общем, в вашем случае не обязательно отслеживать есть ли на сервере это значение, или его нету. Главное правильно десериализовать!
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Доброго дня, знатоки! Столкнулся с такой проблемой, необходимо сделать выделение списка ListView прозрачным, чтобы оно вообще никак не фигурировало
Добрый день, товарищи! Собственно, почему "чат" в вопросе взято в кавычки: Требуется не совсем чат-бот, а просто бот, отвечающий на весьма и весьма...
Дано положительное 4-ёхзначное число, нужно вывести минимальное число, которое можно получить перестановкой цифр в заданом числе
не записывается ни в какую, handle взял, адрес указал, байты и размер тоже, но при запуске кода байты в программе не записываются