C # JsonConvert - Как разобрать неправильный ключ / значение JSON? - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь получить json с JsonConvert из файла, который содержит следующую информацию:

 {
  "Programacion": {
    "F201604260700": { "Comercial": "COM63039" },
    "F201604260805": { "Comercial": "COM63039" },
    "F201604260944": { "Comercial": "COM63039" },
    "F201604261113": { "Comercial": "COM63039" }
    }
 }

Чтобы иметь возможность хранить json, я создал класс под названием Tandas, потому что каждое "Программирование""имеет другой ключ (" F201604260700 "," F201604260805 ") Мне не удалось создать массив данных, который работает для меня

public class Tandas
        {
            // Not work
            //public IEnumerable<IDictionary<string, string>> Programacion { get; set; }

            // Not work
            public List<KeyValuePair<string, KeyValuePair<string, string>>> Programacion { get; set; }
        }

Я не знаю много об исправлениях и объектах в C #,какое решение я могу дать?

// Error
this.tandas = JsonConvert.DeserializeObject<Tandas>(json_tandas_string);

1 Ответ

2 голосов
/ 12 марта 2019

JsonConvert может десериализовать объект JSON в Dictionary<string, T>, где T - это тип значений.

В этом случае значения также являются объектами JSON со строковыми значениями, поэтому T в этом случае будет Dictionary<string, string>.

Полный класс:

public class Tandas
{
    public Dictionary<string, Dictionary<string, string>> Programacion { get; set; }
}

Теперь вы пояснили, что внутренние объекты содержат обычные ключи, поэтому вы можете определить класс для этого:

public class InnerThing
{
    public string Comercial { get; set; }
}

public class Tandas
{
    public Dictionary<string, InnerThing> Programacion { get; set; }
}
...