如何读取反序列化的json以显示在xamarin中

时间:2019-06-04 20:57:45

标签: c# json xamarin deserialization

我有这个反序列化的json,因为我想读取这个json中的每一项以显示在列表视图中

[
    {
        "nom": "Gestión y Admon. de Proyectos",
        "peri": "0985",
        "crse_id": "013981",
        "horario": [
            {
                "feci": "2019-01-21",
                "hora": "16:00 - 18:00",
                "saln": "EG-3.1",
                "fecf": "2019-05-18",
                "doc": "Carlos Mario Vélez Velásquez",
                "dia": "4 "
            }
        ],
        "notas": [],
        "parciales": []
    },
    {
        "nom": "Análisis y Diseño de Algoritmo",
        "peri": "0985",
        "crse_id": "012853",
        "horario": [
            {
                "feci": "2019-01-21",
                "hora": "09:00 - 11:00",
                "saln": "PL-3.2",
                "fecf": "2019-05-11",
                "doc": "MIGUEL ANGEL ROMERO GONZALEZ",
                "dia": "2 "
            },
            {
                "feci": "2019-01-21",
                "hora": "09:00 - 11:00",
                "saln": "PL-3.1",
                "fecf": "2019-05-11",
                "doc": "HERNAN CAMILO ROCHA NIÑO",
                "dia": "4 "
            }
        ],
        "notas": [],
        "parciales": []
    }
]

我想读一个循环并在数组中显示cada对象的内容。 我正在使用XAMARIN,这是我的功能,但是没有用

 var Items = JsonConvert.DeserializeObject <List<materias>>(content);

            if (content != null)
            {
                await DisplayAlert("mensaje", Items.nom, "ok");
                foreach (var materia in Items)
                {
                    await DisplayAlert("materia", , "ok");
                }
            }
            else
            {
                errorLog.Text = "Ups No se pudo Conectar Al servidor";


            }

1 个答案:

答案 0 :(得分:0)

假设您对materias类具有正确的定义,那么您的Items引用将指向materias对象的列表。这意味着以下行将不起作用,因为它试图在作为列表时访问materias属性。

    await DisplayAlert("mensaje", Items.nom, "ok");

如果要访问属性,请在while循环中访问它:

var Items = JsonConvert.DeserializeObject<List<materias>>(content);

// no need to check `content` because here you work with `Items` already
if (Items != null)
{
    // Count will show you number of records deserilized
    await DisplayAlert("mensaje", Items.Count, "ok");
    foreach (var materia in Items)
    {
        await DisplayAlert("materia", materia.nom, "ok");
    }
}