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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn der Benutzer sendet einen gültigen json-string zu deiner Aktion, dann nicht akzeptieren, die ein Objekt als parameter, sondern ein string (z.B. weil Ihre Benutzer schickt Sie ein).
Wenn Sie anrufen
ToString()
auf ein Objekt, die Chancen sind, ist es nicht in einemJson
format.Versuchen zu akzeptieren einen string und Deserialisieren, dass: