簡體   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