-1

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

 {
  "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);
4

1 回答 1

2

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; }
}
于 2019-03-12T17:22:08.973 回答