Как сделать проверку если не существует элемента в 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) //как пример...
В общем, в вашем случае не обязательно отслеживать есть ли на сервере это значение, или его нету. Главное правильно десериализовать!
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости