Как прочитать десериализованный JSON для отображения в Xamarin - PullRequest
1 голос
/ 04 июня 2019

У меня есть этот десериализованный 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 голосов
/ 05 июня 2019

Если у вас есть правильное определение для класса 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");
    }
}

...