Ich habe den folgenden Code:Anmutig ein leeres Objekts in json RestSharp Handhabung
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;
}
Das Problem besteht darin, dass manchmal die Antwort wird ein leerer json Array []
sein. Und wenn ich diesen Code ausführe, erhalte ich die folgende Ausnahme: Das Objekt des Typs 'RestSharp.JsonArray' kann nicht in den Typ 'System.Collections.Generic.IDictionary`2 [System.String, System.Object]' umgewandelt werden.
Gibt es eine Möglichkeit, dies elegant zu handhaben?
Haben Sie eine Chance zu ändern, was die Antwort vom Server ist? Es sollte Ihnen ein leeres Objekt {} anstelle eines leeren Arrays [] zurückgegeben haben. Die beiden sind nicht kompatibel in JSON. –
Ich kann an einfache Hacks denken, aber das ist es. – evanmcdonnal
@Thomas: Hat jemand noch mehr Gedanken dazu? Finden Sie Antworten? Ich bekomme das von der Facebook API. Wenn Sie bei einem bestimmten Aufruf ungültige Daten senden, wird ein Wörterbuch zurückgegeben, in dem Sie darüber informiert werden, was falsch ist und warum. Andernfalls wird ein leeres json-Array '[]' zurückgegeben. So nervig. Ideen? – xan