restclient net example deserialize async c# json restsharp

c# - net - restsharp timeout



Deserialización RestSharp con JSON Array (4)

Algo con lo que me topé es que no funciona si utiliza interfaces como: IEnumerable o IList, tiene que ser un tipo concreto.

Esto no funcionará, como ocurre con otros serializadores json como json.net.

public class DevicesList { public IEnumerable<DeviceContainer> Devices { get; set; } } public class DeviceContainer { ... }

Tendría que ser algo como esto:

public class DevicesList { public List<DeviceContainer> Devices { get; set; } } public class DeviceContainer { ... }

Tengo una respuesta JSON que estoy intentando deserializar con RestSharp , y se ve así:

{"devices":[{"device":{"id":7,"deviceid":"abc123","name":"Name"}}, {"device":{"id":1,"deviceid":"def456","name":"Name"}}], "total":2, "start":0, "count":2}

Basado en algunas sugerencias que he encontrado, he intentado configurar mi POCO de esta manera:

public class DevicesList { public List<DeviceContainer> Devices; } public class DeviceContainer { public Device Device; } public class Device { public int Id { get; set; } public string DeviceId { get; set; } public string Name { get; set; } }

Y luego mi ejecución se ve así:

// execute the request var response = client.Execute<DevicesList>(request);

Sin embargo, response.Data es NULL, y he intentado otras variaciones sin suerte.

Entonces, ¿qué estructura de clase y mapeo deberían usarse para esta situación? También he intentado esto sin la clase DeviceContainer extra.

Gracias por la ayuda.



RestShartp no admite DataAnnotation / DataMember, cambie el nombre de sus propiedades sin may:

  • Dispositivos -> dispositivos
  • Dispositivo -> dispositivo

Y no olvides el {get; set;} {get; set;} ;).


Tuve un problema ligeramente diferente cuando mi POCO de deserialización contenía una matriz.

Cambiarlo de Devices[] a List<Devices> resolvió el problema y se deserializó correctamente.