Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何读取反序列化json以在xamarin中显示_C#_Json_Xamarin_Deserialization - Fatal编程技术网

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

C# 如何读取反序列化json以在xamarin中显示,c#,json,xamarin,deserialization,C#,Json,Xamarin,Deserialization,我之所以使用这个反序列化的json,是因为我想读取json中的每一项以显示在listview中 [ { "nom": "Gestión y Admon. de Proyectos", "peri": "0985", "crse_id": "013981", "horario": [ { "feci": "2019-01-21", "hor

我之所以使用这个反序列化的json,是因为我想读取json中的每一项以显示在listview中

[
    {
        "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";


            }
var Items=JsonConvert.DeserializeObject(内容);
如果(内容!=null)
{
等待显示警报(“mensaje”,Items.nom,“ok”);
foreach(项目中的var物料)
{
等待显示警报(“材料”、“正常”);
}
}
其他的
{
errorLog.Text=“不间断电源供电”;
}

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

    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");
    }
}

var Items=JsonConvert.DeserializeObject(内容);
//不需要检查'content',因为这里已经有'Items'了
如果(项!=null)
{
//计数将显示反序列化的记录数
等待DisplayAlert(“mensaje”,Items.Count,“ok”);
foreach(项目中的var物料)
{
等待显示警报(“materia”,materia.nom,“ok”);
}
}

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

    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");
    }
}

var Items=JsonConvert.DeserializeObject(内容);
//不需要检查'content',因为这里已经有'Items'了
如果(项!=null)
{
//计数将显示反序列化的记录数
等待DisplayAlert(“mensaje”,Items.Count,“ok”);
foreach(项目中的var物料)
{
等待显示警报(“materia”,materia.nom,“ok”);
}
}

我的类materials包含所有这些参数。如果反序列化,它就不再是JSON了。你需要更清楚地知道“不起作用”是什么意思。你有错误吗?如果包含
材料的定义
,也会更容易回答您的问题。请注意,C#是区分大小写的,因此这与
materials
不同……代码甚至不会编译。Items是一个列表,它没有属性“nom”,并且DisplayAlert缺少一个参数。发帖前请仔细阅读。正如Jason提到的,根据你的问题很难确切知道问题是什么。撇开这一点不谈,为什么在反序列化内容之后还要检查内容是否为空?也许你要反序列化的问题是空的?到底是什么不起作用?我的类Materials包含所有这些参数如果它被反序列化,它就不再是JSON了。你需要更清楚地知道“不起作用”是什么意思。你有错误吗?如果包含
材料的定义
,也会更容易回答您的问题。请注意,C#是区分大小写的,因此这与
materials
不同……代码甚至不会编译。Items是一个列表,它没有属性“nom”,并且DisplayAlert缺少一个参数。发帖前请仔细阅读。正如Jason提到的,根据你的问题很难确切知道问题是什么。撇开这一点不谈,为什么在反序列化内容之后还要检查内容是否为空?也许你要反序列化的问题是空的?到底什么不起作用?它不起作用。这是我的类materials->public class materials{public string nom{get;set;}public string peri{get;set;}public string coda{get;set;}public string Strm{get;set;}public string notp{get;set;}public string porci{get;set;}public string proci get;set;}public string class_部分{get;set;}公共字符串crse_id{get;set;}公共列表horario{get;set;}公共列表notas{get;set;}公共列表parciales{get;set;}@AndersonLaverde感谢!你能把这个定义添加到原来的问题中吗?我注意到你能够解决这个问题,你能指定具体的问题是什么,这样其他人就可以从这个问题中受益吗?它不起作用。这是我的class materials->public class materials{public string nom{get;set;}公共字符串peri{get;set;}公共字符串coda{get;set;}公共字符串Strm{get;set;}公共字符串notp{get;set;}公共字符串porci{get;set;}公共字符串类_段{get;set;}公共字符串crse_id{get;set;}公共列表{get;set;}公共列表notas{get;set;}公共列表parciales{get;set;}}@AndersonLaverde感谢!请您将此定义添加到原始问题中,我注意到您能够解决此问题,请您指定具体问题是什么,以便其他人可以从该问题中受益