Ich arbeite, in C#, mit einigen API und es gibt "Fehler" in JSON mit 404 und 200 (!) Statuscode, aber mit unterschiedlichen Strukturen.Deserialize JSON andere Struktur, aber den gleichen Namen in C#
1) HTTP-Status 200:
{ "Errors": "Duplicated" }
2) HTTP-Status 200:
{ "Errors": {"some_key":"Invalid"} }
3) HTTP-Status 404:
{ "Errors": "some_key1":["Invalid"], "some_key2":["Invalid"] }
1 - Maps String - OK , aber nicht zu Dictionary<string,string>
2 - Maps zu Dictionary<string,string>
, aber nicht zu string 3 - Ordnet es ModelState zu Dictionary<string,List<string>>
OK, da der StatusCode diff ist (ich benenne "Errors" in JSON-Zeichenfolge um und ordnet es dem Namen der diff-Eigenschaft zu).
Das einzige Problem ist in Fall 1 und 2, da beide mit demselben HTTP-Statuscode und demselben Knotennamen "Errors" zurückgegeben werden.
Hat jemand mit diesen Fällen gearbeitet? Wie gehst du mit ihnen um? Gibt es irgendeine Einstellung von Netwon Json deserialzier, um Case 2 auf String oder Case 1 in das Wörterbuch mit 1,2,3 .. automatisch generierten Schlüsseln zu reduzieren?
Irgendeine andere Idee?
Prost
Diese Technik, um zuerst zu JToken zu analysieren und dann zu überprüfen, ob es den Knoten "Error" gibt, halfen mir. http://www.newtonsoft.com/json/help/html/SerializingJSONFragments.htm Aber das enge mich mit NewtonJson. –