【问题标题】:Parsing JSON multidimensional array with C#用 C# 解析 JSON 多维数组
【发布时间】:2014-07-04 23:42:49
【问题描述】:

我正在尝试从 Json 文件中解析一些数据,但遇到了一些问题。

这是我的 JSON 文件中的示例数据

这是我的代码:

foreach (JsonValue groupValue in jsonArray)
{
    JsonObject groupObject = groupValue.GetObject();
    DadosLocaisInteresse group = 
        new DadosLocaisInteresse(
            groupObject["UniqueId"].GetString(),
            groupObject["Title"].GetString(),
            groupObject["Subtitle"].GetString(),
            groupObject["ImagePath"].GetString(),
            groupObject["Description"].GetString(),
            groupObject["Latitude"].GetNumber(),
            groupObject["Longitude"].GetNumber()
    );

    foreach (JsonValue itemValue in groupObject["Items"].GetArray())
    {
        JsonObject itemObject = itemValue.GetObject();

        group.Items.Add(
            new DadosLocaisInteressePontos(
                itemObject["UniqueId"].GetString(),
                itemObject["Title"].GetString(),
                itemObject["Subtitle"].GetString(),
                itemObject["ImagePath"].GetString(),
                itemObject["Description"].GetString(),
                itemObject["Content"].GetString(),
                itemObject["ItemLatitude"].GetNumber(),
                itemObject["ItemLongitude"].GetNumber())
        );

        foreach (JsonValue galeriaValue in itemObject["Galerias"].GetArray())
        {
            JsonObject galeriaObject = galeriaValue.GetObject();
            ItemsGaleria galeria = 
                new ItemsGaleria(
                    galeriaObject["UniqueID"].GetString(),
                    galeriaObject["ImagePath"].GetString(),
                    galeriaObject["ImagePath1"].GetString()
            );                           

        }
    }
    this.Groups.Add(group);
}

组和项目数组工作得很好。 问题是我无法从“Galeria Array”中获取数据...... 我做错了什么???

【问题讨论】:

  • 在 JSON 中是 Galeria,在您的代码中是 Galerias
  • @JossefHarush 我的异常是:mscorlib.dll 中发生了“System.Collections.Generic.KeyNotFoundException”类型的异常,但未在用户代码中处理其他信息:给定的密钥不在字典。

标签: c# arrays json parsing multidimensional-array


【解决方案1】:

您可以使用下面提到的方法来反序列化对象

您必须创建一个可以包含以下属性的类:

 public class Grp
{

    public string UniqueId { get; set; }
    public string Title { get; set; }
    public string Subtitle { get; set; }
    private List<item> _Items=new List<item>();

    public List<item> Items
    {
        get { return _Items; }
        set { _Items = value; }
    }


}
 public class item
{
    public string UniqueId { get; set; }
    public string Title { get; set; }
    public string Subtitle { get; set; }
}

然后你可以添加 using Newtonsoft.Json;反序列化对象;

var obj = JsonConvert.DeserializeObject<Grp>(s);

【讨论】:

    猜你喜欢
    • 2022-01-19
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 2014-02-08
    • 1970-01-01
    相关资源
    最近更新 更多