C# JsonConvert - 如何解析不规则键/值 JSON?

C# JsonConvert - How to parse an irregular key / value JSON?

我正在尝试使用 JsonConvert 从包含以下信息的文件中获取 json:

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

为了能够存储 json,我创建了一个名为 Tandas 的 class,因为每个 "Programming" 都有不同的密钥("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);

JsonConvert 可以将 JSON 对象反序列化为 Dictionary<string, T>,其中 T 是值的类型。

在这种情况下,值也是 JSON 个对象,具有字符串值,因此 T 在这种情况下将是 Dictionary<string, string>.

完整 class:

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

您现在已经阐明了内部对象包含常规键,因此您可以为此定义一个 class:

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

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