0

Имеется массив в файле JSON

[
{
"info1":1,
"info2":2,
"info3":3,
},
{
"info1":,
"info2":,
"info3":,
}
]

Массив без названия, как я могу к нему обращаться в модели?

public class InfoItems
    {
        [JsonProperty("????")]
        public Info[] InfoItem { get; set; }
    }
public class Info
    {
        [JsonProperty("Info1")]
        public int inf1 { get; set; }
        [JsonProperty("Info2")]
        public string inf2 { get; set; }
        [JsonProperty("Info3")]
        public string inf3 { get; set; }
    }
  • Где вы тут увидели массив без названия? Я например вижу корневой объект, который является массивом объектов. Так может все же.Deserealize<Person[]> (массив можно заменить для удобства на List<>)? – EvgeniyZ Jun 28 '20 at 23:22
  • @EvgeniyZ Да так и сделано, но главная проблема состоит в том, что я не могу обратится напрямую к свойству через LINQ https://imgur.com/a/pgZE7WM – Domenic Ross Jun 28 '20 at 23:39
  • Все вы можете, просто пишете не так, вы обращаетесь к Persons, естественно там не будет свойств нужных вам, ибо это коллекция. Что вам надо? Достать один объект? Пожалуйста - var result = Persons.FirstOrDerault(x=>x.inf1 == 5); Или нужна выборка? var result = Persons.Where(x=>x.inf3 >= 24);. Вы же как уже наверно догадались, полезли не в те дебри... Ну а вообще, нет доступа через LINQ это уже совсем другой вопрос. – EvgeniyZ Jun 28 '20 at 23:47
  • @EvgeniyZ Да, пару минут назад сам понял об этом, и не понимаю как не понял это сразу – Domenic Ross Jun 28 '20 at 23:54
  • @EvgeniyZ запостите как ответ? – Kromster Jun 29 '20 at 07:35
  • @Kromster Нет, ибо как я однажды сказал - я против таких вопросов и всеми руками буду за их удаление/закрытие. От него нет пользы для сообщества, автор не хотел думать и сразу пошел строчить вопрос, да и по сути можно закрыть дубликатом на любой вопрос по десериализации JSON. Если хотите +к репутации, дерзайте, я не против. – EvgeniyZ Jun 29 '20 at 09:47
  • @EvgeniyZ но я не вижу от вас ни голоса за закрытие, ни минуса .. ? Если вы не против, размещу ваш ответ как "общий". Все же вопрос и ответ не так уж плохи – Kromster Jun 29 '20 at 10:01
  • @Kromster Я капля в море, мой голос мало чего изменит, против я - не против другие. Я направил человека в правильное русло, дальше уже пусть сообщество SO смотрит что оно хочет, я же, посижу в стороне. Также на сколько я знаю, вопросы без ответов, голосов или с ответами без голосов рано или поздно удаляются - мне этого достаточно, я не буду человеку портить репутацию и впечатления минусами, бессмысленно. А дубликат - типичная закрывашка, похоже на него? От части да, от части нет. Может вы и правы, стоит проголосовать за этот дубликат. – EvgeniyZ Jun 29 '20 at 10:16

1 Answers1

0

Если EvgeniyZ не против, перенесу его комментарии в ответ:


Где вы тут увидели массив без названия? Я например вижу корневой объект, который является массивом объектов. Так может все же .Deserealize<Person[]> (массив можно заменить для удобства на List<>)?

Вы просто пишете не так, вы обращаетесь к Persons, естественно там не будет свойств нужных вам, ибо это коллекция. Что вам надо? Достать один объект? Пожалуйста - var result = Persons.FirstOrDerault(x=>x.inf1 == 5); Или нужна выборка? var result = Persons.Where(x=>x.inf3 >= 24);. Вы же как уже наверно догадались, полезли не в те дебри... Ну а вообще, нет доступа через LINQ это уже совсем другой вопрос.

Kromster
  • 13,809