Ich habe eine Methode implementiert eine List<string>
nach einem JSON String zurückgegeben.deserialize leere String zu einer Liste <string>
Es funktioniert gut bis ich festgestellt habe, dass ich versuche, eine leere Zeichenfolge zu deserialisieren. Es stürzt weder ab noch löst es eine Ausnahme aus. Es gibt einen null
Wert anstelle eines leeren List<string>
zurück.
Die Frage ist, was könnte ich berühren, um mir eine leere List<string>
statt null
Wert zurückgibt?
return JsonConvert.DeserializeObject(content, typeof(List<string>));
EDIT Allgemeine Methode:
public object Deserialize(string content, Type type) {
if (type.GetType() == typeof(Object))
return (Object)content;
if (type.Equals(typeof(String)))
return content;
try
{
return JsonConvert.DeserializeObject(content, type);
}
catch (IOException e) {
throw new ApiException(HttpStatusCode.InternalServerError, e.Message);
}
}
'type.GetType()' ist falsch; Es gibt einen konkreten Typ, der von 'System.Type' erbt, was nicht das ist, was Sie wollen. Du willst 'if (type == typeof (Object))' da. Im nächsten 'if' können Sie auch' == '(für Konsistenz) verwenden. –