Tengo el siguiente código:manejando agraciado un objeto JSON vacío en RestSharp
public void GetJson()
{
RestRequest request = new RestRequest(Method.GET);
var data = Execute<Dictionary<string, MyObject>>(request);
}
public T Execute<T>(RestRequest request) where T : new()
{
RestClient client = new RestClient(baseUrl);
client.AddHandler("text/plain", new JsonDeserializer());
var response = client.Execute<T>(request);
return response.Data;
}
El problema es que a veces la respuesta será una matriz JSON vacío []
. Y cuando ejecuto este código recibo la siguiente excepción: No se puede convertir el objeto de tipo 'RestSharp.JsonArray' para escribir 'System.Collections.Generic.IDictionary`2 [System.String, System.Object]'.
¿Hay alguna manera de manejar esto con elegancia?
¿Tiene alguna posibilidad de cambiar la respuesta del servidor? Debería haberle devuelto un objeto vacío {} en lugar de un conjunto vacío []. Los dos no son compatibles incluso en JSON. –
Puedo pensar en hacks simples pero eso es todo. – evanmcdonnal
@Thomas: ¿Alguien tiene más pensamientos sobre esto? Encuentra alguna respuesta? Lo estoy obteniendo de la API de Facebook. En una determinada llamada, cuando envía datos no válidos, devuelve un diccionario que le dice lo que estaba mal y por qué. De lo contrario, devuelve una matriz json vacía '[]'. Muy molesto. Ideas? – xan