Ich verwende mehrere in C# codierte API, die gut funktioniert. Ich möchte einen verwenden, der ein anonymes Objekt empfängt (ich möchte keine Klasse erstellen). Ich habe ein Problem, wenn ich versuche, das Objekt zu deserialisieren.C# API "Unerwartetes Zeichen beim Analysieren von Werten gefunden: S. Pfad '', Zeile 0, Position 0"
Ich habe eine API nach diesem Schema, es funktioniert gut, wenn es von python
mit der json_dumps
Funktion aufgerufen wird. Aber wenn ich mit JSON.stringify
(von einem ausprobieren oder sogar POSTMAN, habe ich ein 400 Bad Request
Hier ist mein Code, habe ich viele Dinge ausprobiert.
[WebInvoke(Method = "POST", UriTemplate = "myUrl")]
[OperationContract]
public Message myMethod(object objectSentByUser)
{
var perso = JsonConvert.DeserializeObject<dynamic>(objectSentByUser.ToString());
JsonConvert.DeserializeObject<dynamic>
wartet auf eine Zeichenfolge , ich habe versucht:
-bis objectSentByUser
als Zeichenfolge im Argument von myMethod
Wenn ich so gebe ich einen 400 ohne auch nur Eingabe der Methode haben (ich habe versucht, eine JSON zu schicken, Anführungszeichen zu verwenden, um senden Sie eine Zeichenfolge etc ...)
-bis mit (string)objectSentByUser
gegossen, es nicht funktioniert
-bis zu verwenden, um die toString()
-Methode, die auf den nächsten Fehler führt: Unexpected Charakter auf beim Parsing-Wert: S. Pfad ‚‘, Zeile 0, der Position 0 , die ganz normal ist, weil objectSentByUser.toString()
returns „System.Object“ (aber warum es, wenn sie mit python json_dump verwendet funktioniert?)
Dieser Code, wenn sie mit python Funktion json_dump, die ein Objekt wie folgt zurückgibt genannt funktioniert:
"{\\" Schlüssel1 \\ ": \\" Wert1 \\ ", ...}"
Von Postman mir eine klassischen POST mit application/json
als contentType
und einer gültigen JSON
im Körper sende
Vielen Dank für Ihre Hilfe
See (auf einer Website in einer anderen Diskussion über Stackoverflow gefunden prüft) Sie
Vielen Dank für Ihre Antwort. Wenn ich die API dank POSTMAN mit contentType-Anwendung/JSON und einem JSON-Objekt im Körper versuche, erhalte ich eine 400 schlechte Anfrage, ich gebe nicht einmal myMethod ein. Es funktioniert, wenn ich ein Objekt formatiert diese Weise senden: „{\“ key1 \ „: \“ Wert1 \ „...}“ Ich weiß nicht, warum ich mit den Python Doppelschrägstriche versucht und nicht mit einzelnen Backslashes .. – heythere