-1

I'm trying to get a json with JsonConvert from a file that contains the following information:

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

To be able to store the json I have created a class called Tandas, because each "Programming" has a different key ("F201604260700", "F201604260805") I have not managed to create an array of data that works for me

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; }
        }

I do not know much about fixes and objects in C #, what solution could I give?

// Error
this.tandas = JsonConvert.DeserializeObject<Tandas>(json_tandas_string);
Angel
  • 402
  • 3
  • 8

1 Answers1

2

JsonConvert can deserialize a JSON object to a Dictionary<string, T> where T is the type of the values.

In this case, the values are also JSON objects, with string values, so T in this case would be Dictionary<string, string>.

Full class:

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

You've now clarified that the inner objects contain regular keys, so you can define a class for that:

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

public class Tandas
{
    public Dictionary<string, InnerThing> Programacion { get; set; }
}
JLRishe
  • 99,490
  • 19
  • 131
  • 169