Как прочитать содержимое JSON Dynami c в объект? - PullRequest
0 голосов
/ 17 июня 2020

Мне нужно определить в json файле bands, содержащем динамическую c конфигурацию диапазонов значений. Они могут измениться в будущем, поэтому я хотел бы, чтобы это выглядело так:

"Bands": {
    "5-15": [ 5000, 15000 ],
    "15-30": [ 15000, 30000 ],
    "30-45": [ 30000, 45000 ],
    "45-60": [ 45000, 60000 ],
    "60-100": [ 60000, 100000 ]
}

Можно ли читать в этом формате json и сохранять его в объекте?

I попробовал это:

public class BandsMapping
{
    public List<Bands> Bands { get; set; }
}

public class Bands
{
    public string Name { get; set; }
    public List<int> ValueRanges { get; set; }
}

Но это не удалось, потому что в файле json нет ни Name, ни ValueRanges. Но я бы хотел, чтобы файл json выглядел примерно так.

Есть идеи, как я могу этого добиться?

1 Ответ

1 голос
/ 17 июня 2020

Вы можете использовать Dictionary<string, List<int>> или Dictionary<string, int[]> для содержимого Bands вместо List<int>

public class BandsMapping
{
    public Dictionary<string, List<int>> Bands { get; set; }
}

Клавиша словаря представляет string с диапазоном, значение словаря представляет собой массив или список целых значений. Вы также можете легко преобразовать словарь в список Bands элементов, используя Select метод

var result = JsonConvert.DeserializeObject<BandsMapping>(jsonString);
var bandsList = result.Bands
    .Select(kvp => new Bands { Name = kvp.Key, ValueRanges = kvp.Value })
    .ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...