C# Can';t从JSON反序列化字典

C# Can';t从JSON反序列化字典,c#,json,dictionary,json.net,json-deserialization,C#,Json,Dictionary,Json.net,Json Deserialization,我有这门课: class SoporteFile { public Evento[] eventos { get; set; } public Programacion[] programaciones { get; set; } public static Dictionary<int, object[]> soportes { get; set; } } SoporteFile中的类字典应与Soporte类匹配。

我有这门课:

class SoporteFile 
    {
        public Evento[] eventos { get; set; }
        public Programacion[] programaciones { get; set; }
        public static Dictionary<int, object[]> soportes { get; set; }
    }
SoporteFile中的类字典应与Soporte类匹配。soportes[0]应该有一个Aviso数组,soportes[1]应该有一个Placa数组,等等。当我用Json.NET解析它时,即使Dictionary soportes和Soporte类之间没有关系,我也没有得到任何错误,它似乎解析得很好(我不知道它是否正确),但当我尝试访问Dictionary soportes时(首先反序列化):

}


编辑:我可能需要从字典中取出静态文件。如果我这样做,我会得到以下错误:“无法将当前JSON对象(例如{“name”:“value”})反序列化为类型“System.object[]”,因为该类型需要一个JSON数组(例如[1,2,3])才能正确反序列化。”

尝试此方法-对我运行代码有效: (为什么在类型中指定了对象数组?)

公共字典soportes{get;set;}

试试这个-运行您的代码对我很有用: (为什么在类型中指定了对象数组?)

公共字典soportes{get;set;}

供参考:反序列化程序如何知道在soportes中构建什么类型的对象?也许你需要使用字典,然后将它转换成你需要使用的任何东西。还想知道为什么对soport使用static。如果我从字典中取出static,我会遇到反序列化问题:“无法将当前JSON对象(例如{“name”:“value”})反序列化为类型‘System.object[],因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化。”@JeffDavies我取出了STATIC,将dynamic替换为object,并得到了写在上面的反序列化错误,您发布的json缺少一个结尾}:仅供参考:反序列化如何知道在soportes中构建什么类型的对象?也许你需要使用字典,然后将它转换成你需要使用的任何东西。还想知道为什么对soport使用static。如果我从字典中取出static,我会遇到反序列化问题:“无法将当前JSON对象(例如{“name”:“value”})反序列化为类型‘System.object[],因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化。”@JeffDavies我去掉了STATIC,把dynamic换成object,得到了写在上面的反序列化错误,你发布的json缺少一个结尾:}:好的,这没有得到解析错误,但是你如何访问存储在soportes中的值呢?我尝试了“Aviso[]misAvisos=(Aviso[])curContent.soportes[2];”但它表示“无法将'Newtonsoft.Json.Linq.JArray'转换为'CreativaTV.Aviso[]类型”。这是一种方法。好的,这不会导致解析错误,但是您如何访问存储在soportes中的值呢?我尝试了“Aviso[]misAvisos=(Aviso[])curContent.soportes[2];”但它表示“无法将'Newtonsoft.Json.Linq.JArray'转换为'CreativaTV.Aviso[]类型”。这是一种方式。
 class Soporte
    {
        public Aviso[] avisos { get; set; }
        public Placa[] placas { get; set; }
        public Portada[] portadas { get; set; }
        public Efemeride[] efemerides { get; set; }
        public Comunicado[] comunicados { get; set; }
    }
 SoporteFile curContent = JsonConvert.DeserializeObject<SoporteFile>(File.ReadAllText(curFolder + @"/Contenido.json"));
{
"eventos": [
    {
        "id_evento": 5,
        "id_calendario": 5,
        "id_usuario": 1,
        "fecha_carga": "2017-04-25 08:47:20",
        "descripcion": "Mañanas",
        "lugar": null,
        "resumen": null,
        "fecha_inicio": "2017-05-16",
        "hora_inicio": "06:00:00",
        "fecha_limite": "2017-05-16",
        "hora_limite": "12:00:00",
        "dia_completo": 0,
        "id_estado": null,
        "recordatorio": null,
        "bloqueado": 0,
        "id_programacion": 1,
        "color": null
    },
    {
        "id_evento": 8,
        "id_calendario": 5,
        "id_usuario": 1,
        "fecha_carga": "2017-04-27 16:51:56",
        "descripcion": "Tarde",
        "lugar": null,
        "resumen": null,
        "fecha_inicio": "2017-05-16",
        "hora_inicio": "12:00:00",
        "fecha_limite": "2017-05-16",
        "hora_limite": "20:00:00",
        "dia_completo": 0,
        "id_estado": null,
        "recordatorio": null,
        "bloqueado": 0,
        "id_programacion": 1,
        "color": null
    },
    {
        "id_evento": 5,
        "id_calendario": 5,
        "id_usuario": 1,
        "fecha_carga": "2017-04-25 08:47:20",
        "descripcion": "Mañanas",
        "lugar": null,
        "resumen": null,
        "fecha_inicio": "2017-05-17",
        "hora_inicio": "06:00:00",
        "fecha_limite": "2017-05-17",
        "hora_limite": "12:00:00",
        "dia_completo": 0,
        "id_estado": null,
        "recordatorio": null,
        "bloqueado": 0,
        "id_programacion": 1,
        "color": null
    },
    {
        "id_evento": 8,
        "id_calendario": 5,
        "id_usuario": 1,
        "fecha_carga": "2017-04-27 16:51:56",
        "descripcion": "Tarde",
        "lugar": null,
        "resumen": null,
        "fecha_inicio": "2017-05-17",
        "hora_inicio": "12:00:00",
        "fecha_limite": "2017-05-17",
        "hora_limite": "20:00:00",
        "dia_completo": 0,
        "id_estado": null,
        "recordatorio": null,
        "bloqueado": 0,
        "id_programacion": 1,
        "color": null
    },
    {
        "id_evento": 5,
        "id_calendario": 5,
        "id_usuario": 1,
        "fecha_carga": "2017-04-25 08:47:20",
        "descripcion": "Mañanas",
        "lugar": null,
        "resumen": null,
        "fecha_inicio": "2017-05-18",
        "hora_inicio": "06:00:00",
        "fecha_limite": "2017-05-18",
        "hora_limite": "12:00:00",
        "dia_completo": 0,
        "id_estado": null,
        "recordatorio": null,
        "bloqueado": 0,
        "id_programacion": 1,
        "color": null
    },
    {
        "id_evento": 8,
        "id_calendario": 5,
        "id_usuario": 1,
        "fecha_carga": "2017-04-27 16:51:56",
        "descripcion": "Tarde",
        "lugar": null,
        "resumen": null,
        "fecha_inicio": "2017-05-18",
        "hora_inicio": "12:00:00",
        "fecha_limite": "2017-05-18",
        "hora_limite": "20:00:00",
        "dia_completo": 0,
        "id_estado": null,
        "recordatorio": null,
        "bloqueado": 0,
        "id_programacion": 1,
        "color": null
    }
],
"programaciones": [
    {
        "id_programacion": 1,
        "nombre": "Programación estándar",
        "tipo_corte": 1,
        "duracion": null,
        "soportes": [
            {
                "id_soporteprogramacion": 10,
                "id_programacion": 1,
                "soporte": 2,
                "orden": null,
                "cantidad": 10,
                "duracion": null
            },
            {
                "id_soporteprogramacion": 11,
                "id_programacion": 1,
                "soporte": 3,
                "orden": 1,
                "cantidad": 12,
                "duracion": null
            },
            {
                "id_soporteprogramacion": 12,
                "id_programacion": 1,
                "soporte": 1,
                "orden": 2,
                "cantidad": 5,
                "duracion": null
            },
            {
                "id_soporteprogramacion": 13,
                "id_programacion": 1,
                "soporte": 12,
                "orden": 3,
                "cantidad": 1,
                "duracion": null
            },
            {
                "id_soporteprogramacion": 14,
                "id_programacion": 1,
                "soporte": 7,
                "orden": 4,
                "cantidad": 5,
                "duracion": null
            },
            {
                "id_soporteprogramacion": 15,
                "id_programacion": 1,
                "soporte": 13,
                "orden": 5,
                "cantidad": 1,
                "duracion": null
            },
            {
                "id_soporteprogramacion": 16,
                "id_programacion": 1,
                "soporte": 8,
                "orden": 6,
                "cantidad": 10,
                "duracion": null
            }
        ]
    }
],
"soportes": {
    "2": [
        {
            "id_placa": 2,
            "id_ref": 1,
            "timestamp": "2017-05-16 19:38:35",
            "id_region": 1,
            "vigencia_desde": "2017-04-12 08:13:00",
            "vigencia_hasta": "2018-04-12 08:13:00",
            "duracion": 1,
            "imagen": "17202847_10212332856146238_6497670072350234982_n.jpg",
            "texto": "el texto",
            "orden": 0,
            "audio": null
        },
        {
            "id_placa": 3,
            "id_ref": 2,
            "timestamp": "2017-05-16 19:38:35",
            "id_region": 1,
            "vigencia_desde": "2017-04-12 08:13:00",
            "vigencia_hasta": "2018-04-12 08:13:00",
            "duracion": 1,
            "imagen": null,
            "texto": "sin imagen",
            "orden": 0,
            "audio": null
        }
    ],
    "1": [
        {
            "id_aviso": 7,
            "id_ref": 2,
            "timestamp": "2017-05-16 19:38:35",
            "id_region": 1,
            "vigencia_desde": "2017-05-16 19:00:00",
            "vigencia_hasta": "2018-05-16 23:59:00",
            "titulo": "RENAULT MEGANE",
            "id_categoriaaviso": 1,
            "texto": "TEXTO DEL AVISO",
            "contacto": null,
            "imagen": null
        },
        {
            "id_aviso": 8,
            "id_ref": 4,
            "timestamp": "2017-05-16 19:38:35",
            "id_region": 1,
            "vigencia_desde": "2017-05-16 19:00:00",
            "vigencia_hasta": "2018-05-16 23:59:00",
            "titulo": "FORD FOCUS",
            "id_categoriaaviso": 1,
            "texto": "FORD",
            "contacto": null,
            "imagen": "Apertura_2008_La_Capital_Rosario.jpg"
        }
    ],
    "13": {
        "id_region": 1,
        "timestamp": "2017-05-16 19:38:35",
        "fecha": "2017-05-16",
        "descripcion": "El aporte de aire húmedo desde el norte mantiene abundante nubosidad y menor amplitud térmica, mientras que sobre la región Patagónica ingresa un frente frío dando lugar a algunas precipitaciones y descenso de temperatura. "
    },
    "7": [
        {
            "id_portada": 1,
            "timestamp": "2017-05-16 19:38:35",
            "id_region": 1,
            "nombre": "La nación",
            "url": "\\1.jpg"
        },
        {
            "id_portada": 2,
            "timestamp": "2017-05-16 19:38:35",
            "id_region": 1,
            "nombre": "Clarín",
            "url": "\\2.jpg"
        }
    ],
    "8": [
        {
            "id_efemeride": 6,
            "id_ref": 2,
            "timestamp": "2017-05-16 19:38:35",
            "id_region": 1,
            "fecha": "2017-05-17",
            "titulo": "Día del enfermero 2",
            "texto": "En enero de 1974, se tomó la decisión de celebrar una jornada conmemorativa de las contribuciones de los enfermeros a la sociedad, promovida por el Consejo Internacional de Enfermería, que se celebra en todo el mundo cada 12 de mayo, conmemorando el natalicio de Florence Nightingale, considerada \\\"fundadora\\\" de la enfermería moderna. Nacida en 1820, de fe anglicana, creía que Dios la había inspirado para ser enfermera. Alcanzó fama mundial por sus trabajos precursores de enfermería en la asistencia a los heridos durante la guerra de Crimea.",
            "imagen": null,
            "video": null,
            "duracion": 10
        }
    ]
}
public Dictionary<int, object> soportes { get; set; }