Dynami c ключи в JSON - PullRequest
       5

Dynami c ключи в JSON

1 голос
/ 25 мая 2020

Прежде всего, я не уверен, что термин «динамический c ключ» является правильным, но моя проблема заключается в следующем.

текущий json:

{
  "Entered": "2012-08-18T13:26:37.7137482-10:00",
  "AlbumName": "Dirty Deeds Done Dirt Cheap",
  "Artist": "AC/DC",
  "YearReleased": 1976,
  "Songs": [
    {
      "SongName": "Dirty Deeds Done Dirt Cheap",
      "SongLength": "4:11"
    },
    {
      "SongName": "Love at First Feel",
      "SongLength": "3:10"
    }
  ]
}

новый:

{
  "Entered": "2012-08-18T13:26:37.7137482-10:00",
  "AlbumName": "Dirty Deeds Done Dirt Cheap",
  "Artist": "AC/DC",
  "YearReleased": 1976,
  "Songs": {
    "Dirty Deeds Done Dirt Cheap": {
                                    "SongLength": "4:11"
                                   },
    "Love at First Feel": {
                           "SongLength": "3:10"
                          }
  }
}

Мой вопрос в том, как должна выглядеть Модель и как я могу динамически изменить имя ключа?

public class CD
    {
        public DateTime Entered { get; set; }
        public string AlbumName { get; set; }
        public string Artist { get; set; }
        public int YearReleased { get; set; }
        public List<Song> Songs { get; set; }
    }
public class Song
    {
        public string Name {get;set;}
        public string Length {get;set;}
    }

1 Ответ

1 голос
/ 25 мая 2020

Для вашего нового формата json вам необходимо изменить структуру данных на Dictionary.

Итак, вместо списка:

public List<Song> Songs { get; set; }

Измените на

public Dictionary<string, Song> Songs { get; set; }

Я предполагаю, что ваши ключи уникальны.

Я проверил это, и он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...