繁体   English   中英

C# 如何将 Jarray 添加到列表<Dictionary<string, dynamic> &gt;

[英]C# How to add Jarray to List<Dictionary<string, dynamic>>

我是 C# .net 的新手。 我正在尝试将我的Jarray添加到字典Dictionary<string, dynamic>然后添加到列表List<Dictionary<string, dynamic>>

我的字符串是这样的:

Response = "[{\"name\":\"ABCD\",\"caption\":\"ABCDCaption\",\"description\":\"ABCDDesc\"},{\"name\":\"ABCD\",\"caption\":\"ABCDCaption\",\"description\":\"ABCDCaption\"},{\"name\":\"XYZ.exe\",\"caption\":\"XYZCaption\","description":\"XYZdesc\"}]"

代码是:

JArray a = JArray.Parse(Response);

foreach (JObject o in bb.Children<JObject>())
{
foreach (JProperty p in o.Properties())
{
  string name = p.Name;
  var value = p.Value;
  DicSQLData.Add(key: name, value: value);                      

}
ListSQLData.Add(DicSQLData);

}

它适用于第一组数据

{\"name\":\"ABCD\",\"caption\":\"ABCDCaption\",\"description\":\"ABCDDesc\"}

对于第二组,它会给出错误,因为字典没有添加重复键。 如何解决这个问题? 任何帮助都非常感谢。

我认为我们遗漏了一些代码,但是您看到该错误是因为您没有在每次循环迭代中初始化一个新字典,而是插入到导致关键错误的同一个字典中。

尝试这样做。 请注意,每次迭代都会创建一个新字典,然后将其插入到列表中

JArray a = JArray.Parse(Response);

foreach (JObject o in bb.Children<JObject>())
{
    //make new dictionary
    var DicSQLData = new Dictionary<string, dynamic>();

    foreach (JProperty p in o.Properties())
    {     
      string name = p.Name;
      var value = p.Value;
      DicSQLData.Add(key: name, value: value);                      
    }

    //add dictionary to list
    ListSQLData.Add(DicSQLData);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM