C # Cómo agregar Jarray a la lista <Dictionary <string, dinámico >>

user13199266:

Soy nuevo en C # .NET. Estoy tratando de añadir mi Jarraya un diccionario Dictionary<string, dynamic>y luego a una lista List<Dictionary<string, dynamic>>.

Mi cadena es algo así como:

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

El código es:

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

}

Funciona bien para el primer conjunto de datos

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

Por segundo conjunto que da el error como diccionario no añade clave duplicada. ¿Cómo arreglar esto? Cualquier ayuda es muy apreciada.

mituw16:

Creo que nos estamos perdiendo una parte del código, pero estamos viendo que el error porque no estás inicializar un nuevo diccionario en cada iteración del bucle, vas a insertar en el mismo diccionario causando los errores fundamentales.

Trate de hacer esto en su lugar. Observe cada iteración hace un nuevo diccionario y luego lo inserta en la lista

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

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=392741&siteId=1
Recomendado
Clasificación