powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / JSON модель???
14 сообщений из 14, страница 1 из 1
JSON модель???
    #39916260
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги! Нужна помощь.
Не могу понять почему ошибка при десирилизации.
генератор классов типа http://json2csharp.com/ генерит совсем неподходящую модель

Классы
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
    [JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)]
    public class StatusesData
    {
        [JsonProperty("statuses")]
        public Dictionary<string, StatusData> StatusesList { get; set; }
    }
	
	public class StatusData
    {
        [JsonProperty("uuid")]
        public Guid Uuid { get; set; }

        [JsonProperty("code")]
        public string Code { get; set; }

        [JsonProperty("platforms")]
        public List<Dictionary<string, Platform>> PlatformsList{ get; set; }
    }
	
	public class Platform
    {
        [JsonProperty("alias")]
        public string Alias { get; set; }

        [JsonProperty("name")]
        public string Name { get; set; }

        [JsonProperty("description")]
        public string Description { get; set; }
    }




JSON
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
{
  "result": {
    "statuses": {
      "edd3ff21-d8fb-11e7-hhc6-99155dfbfb99": {
        "uuid": "edd3ff21-d8fb-11e7-hhc6-99155dfbfb99",
        "code": "1",
        "platforms": [
          {
            "serv123": {
              "alias": "services22",
              "name": "bla-bla",
              "description": "bla-bla"
            }
          },
          {
            "bobik": {
              "alias": "bob",
              "name": "bla-bla",
              "description": "bla-bla"
            }
          }
        ]
      },
      "edd3ff33-33fb-33e7-33c6-33155dfbfb33": {
        "uuid": "edd3ff33-33fb-33e7-33c6-33155dfbfb33",
        "code": "2",
        "platforms": [
          {
            "s3": {
              "alias": "s3",
              "name": "bla-bla",
              "description": "bla-bla"
            }
          },
          {
            "kik": {
              "alias": "kik",
              "name": "bla-bla",
              "description": "bla-bla"
            }
          }
        ]
      }
    }
  }
}


...
Рейтинг: 0 / 0
JSON модель???
    #39916269
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegisteredUser,

Генерация моделей по JSON далеко не самая надёжная штука.
Напишите сами.
...
Рейтинг: 0 / 0
JSON модель???
    #39916296
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt
RegisteredUser,

Генерация моделей по JSON далеко не самая надёжная штука.
Напишите сами.

так вот и пишу, но где-то ошибка
...
Рейтинг: 0 / 0
JSON модель???
    #39916313
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegisteredUser,

А ошибка-то какая?
...
Рейтинг: 0 / 0
JSON модель???
    #39916318
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt
RegisteredUser,

А ошибка-то какая?


Unexpected character encountered while parsing value.

причем, если закомментировать строку
[JsonProperty("platforms")]
public List<Dictionary<string, Platform>> PlatformsList{ get; set; }

то все работает
...
Рейтинг: 0 / 0
JSON модель???
    #39916369
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: c#
1.
2.
3.
4.
5.
      "edd3ff21-d8fb-11e7-hhc6-99155dfbfb99": {
            "uuid": "edd3ff21-d8fb-11e7-hhc6-99155dfbfb99",
            "code": "1",
            "platforms": [ ] // <<< пустой объект!!!
      }


Проблема локализована.
Слетает потому, что в ответе есть несколько объектов с пустым "platforms": [ ]
Можно как-то игнорить это при десирилизации?
...
Рейтинг: 0 / 0
JSON модель???
    #39916383
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
        "platforms": [
          {
            "key01": {
              "alias": "services22",
              "name": "bla-bla",
            }
          },
          {
            "key01": {
              "alias": "services23",
              "name": "",
            }
          },
          {
            "platform02": {
              "alias": "bob",
              "name": "bla-bla",
            }
          }
        ]



Вопрос выродился в другой:
как правильно написать класс, который примет при десирилизации модель, где есть повторяющийся ключ ( "key01" )
Dictionary<string, ClassName> не подходит.
...
Рейтинг: 0 / 0
JSON модель???
    #39916419
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegisteredUser
как правильно написать класс, который примет при десирилизации модель, где есть повторяющийся ключ ( "key01" )


Так-то ключ тут не повторяется :)

в коллекции platforms есть объекты, содержащие повторяющийся ключ key01, но в рамках одного объекта ключ не повторяется. поэтому проблемы нет.
...
Рейтинг: 0 / 0
JSON модель???
    #39916420
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegisteredUser
Слетает потому, что в ответе есть несколько объектов с пустым "platforms": [ ]
Можно как-то игнорить это при десирилизации?


это не должно быть проблемой
...
Рейтинг: 0 / 0
JSON модель???
    #39916489
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt
RegisteredUser
как правильно написать класс, который примет при десирилизации модель, где есть повторяющийся ключ ( "key01" )


Так-то ключ тут не повторяется :)

в коллекции platforms есть объекты, содержащие повторяющийся ключ key01, но в рамках одного объекта ключ не повторяется. поэтому проблемы нет.


Как написать классы правильно, чтобы они принимали структуры где ключ НЕ уникальный?
...
Рейтинг: 0 / 0
JSON модель???
    #39916494
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegisteredUser
Как написать классы правильно, чтобы они принимали структуры где ключ НЕ уникальный?


Зачем? Если в вашем JSON все ключи уникальны.
...
Рейтинг: 0 / 0
JSON модель???
    #39916760
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt
RegisteredUser
Как написать классы правильно, чтобы они принимали структуры где ключ НЕ уникальный?


Зачем? Если в вашем JSON все ключи уникальны.


их может не быть вообще, тогда валится ошибка, когда ответ десирилизуется а Dictionary.
...
Рейтинг: 0 / 0
JSON модель???
    #39916765
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegisteredUser,

в жёстких сценариях можете попробовать ручную десериализацию:

https://www.newtonsoft.com/json/help/html/DeserializeObject.htm
...
Рейтинг: 0 / 0
JSON модель???
    #39918373
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

Спасибо за хинт
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / JSON модель???
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]