Wie kann ich einen String in Json Objekt deserialisieren, wo das JSON-Objekt ein einzelnes oder ein Array sein kann, jetzt habe ich das, was funktioniert, aber es ist ein Hack (pseudo):C# ServiceStack JsonSerializer Deserialize
class MyObject{
public string prop1
public string prop2;
}
class MyList{
List<MyObject> objects {get; set; }
}
class Test{
MyList list = JsonSerialzer.Deserialize<MyList>(str);
//if list is null - it can be single
if(list == null){
MyObject myObject = JsonSerializer.Deserialize<MyObject>(str);
if(myObject != null)
list.add(myObject);
}
}
Wie oben gezeigt, ist das Problem, dass die JSON-Zeichenfolge, die ich von einem anderen Dienst empfange, entweder einzeln oder in einer Liste sein kann. Wie geht man elegant damit um?
Das Problem liegt mehr in der JSON-Nachricht sollte ein Attribut immer entweder 1 Objekt oder ein Array sein. Wenn es sich um ein Array handelt und die Ergebnismenge nur ein Ergebnis hat, sollte es immer noch in einem Array gekapselt sein, damit Sie nicht auf das Problem stoßen, das Sie haben. hier ist eine andere hohe SO beantworten aufgelistet, die Ihnen helfen könnten http://stackoverflow.com/questions/7895105/deserialize-json-with-c-sharp –
Ist das nicht der Link mir genau die gleiche Sache, schickte ich habe? – user1529412
Vielleicht habe ich nicht vergleichen. Aber die Antwort hier ist die richtige Antwort auf Ihre SO. –