Непоследовательный JArray как считать

#c# #json.net

#c# #json.net

Вопрос:

У меня есть непоследовательные элементы JArray, подобные приведенным ниже, иногда у него есть свойство event, но мне нужно считать на основе значения события.

 [
  {
    "id": 114792,
    "attributes": {
      "priority": 0
     }
   },
  {
    "id": 114792,
    "attributes": {
      "priority": 0,
      "event": 10
     }
   },
   {
    "id": 114793,
    "attributes": {
      "priority": 0,
      "event": 0
     }
   }
]
  

Как считать на основе критериев, например event = 0?
Я попробовал ниже:

 _ja.Select(x => x.ToObject<JObject>()).Where(x => (int)x["attributes"]["event"] == 0).Count();
  

Ответ №1:

Вы почти на месте. просто добавьте условие null в Where .

Вот рабочий код

 _ja.Select(x => x.ToObject<JObject>())
   .Where(x => x["attributes"]["event"] != null amp;amp; (int)x["attributes"]["event"] == 0).Count();