2016-04-01 6 views
0

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

+0

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. –

Antwort

Verwandte Themen