c# - API "Unexpected character encountered while parsing-Wert: S. Pfad ", line 0, position 0"

Ich mehrere API in c# gecodet, das gut funktioniert. Ich möchte an einem Erhalt ein anonymes Objekt (ich möchte nicht, eine Klasse zu erstellen). Ich habe ein problem, wenn ich versuche zu Deserialisieren das Objekt.

Habe ich eine API nach diesem Schema, es funktioniert gut, wenn es heißt aus python mit der json_dumps Funktion. Aber wenn ich versuche mit JSON.stringify (von einem oder sogar BRIEFTRÄGER, ich habe einen 400 bad request.

Hier ist mein code, ich habe versucht, eine Menge Dinge :

[WebInvoke(Method = "POST", UriTemplate = "myUrl")]
[OperationContract]
public Message myMethod(object objectSentByUser)
{

    var perso = JsonConvert.DeserializeObject<dynamic>(objectSentByUser.ToString());

JsonConvert.DeserializeObject<dynamic> wartet eine Zeichenfolge, die ich ausprobiert:

-angeben objectSentByUser als string im argument von myMethod
Wenn ich so tun, ich habe einen 400 sogar ohne Eingabe der Methode (ich habe versucht, das senden einer JSON hinzufügen, Zitate, zu senden, einen string, usw...)

-cast mit (string)objectSentByUser funktioniert es nicht

-die toString() Methode, die dazu führt, die nächsten Fehler:
Unexpected character encountered while parsing-Wert: S. Pfad ", line 0, position 0
das ist ganz normal, denn objectSentByUser.toString() gibt " - System.Objekt"
(aber warum funktioniert es, wenn verwendet, mit python json_dump?)

Dieser code funktioniert wenn man es mit dem python-Funktion json_dump, die ein Objekt zurückgibt, wie diese:

"{\\"key1\\":\\"value1\\",...}"

Vom Postboten sende ich eine klassische POST mit application/json als contentType und eine gültige JSON im Körper (überprüft auf einer website gefunden, in einer anderen Diskussion auf stackoverflow)

Vielen Dank für Eure Hilfe

Sehen Sie

InformationsquelleAutor heythere | 2016-07-08
Schreibe einen Kommentar