2017-10-20 2 views
0

Ich versuche ein Objekt wie unten angegeben zu entsearisieren, einer der Zeichenfolge mit einigen Sonderzeichen zugeordnet und einige Fehler konfrontiert.Javascript Deserializer funktioniert nicht für Sonderzeichen

obj= JsonConvert.DeserializeObject<response>(request.Message) 

einer der Eingangskette sieht aus wie unten

"Message":"{ 
    'Id':'text me on dec may\' 17', 
}" 

Fehlerdetails: Nachdem Sie einen Wert ein unerwartetes Zeichen Parsen wurde angetroffen: 1. Pfad 'Id', Linie 4, Position 56

dank im Voraus

+0

Ich bin mir ziemlich sicher, JSON ist nur gültig, unterstützt mit doppelte Anführungszeichen - versuchen Sie, die einfachen Anführungszeichen zu ersetzen – arthurakay

+0

Mögliches Duplikat von [Zeichenfolge als JSON mit einfachen Anführungszeichen parsen?] (https://stackoverflow.com/questions/36038454/parsing-string-as-json-with-single-quotes) – arthurakay

+0

Arthurakay, bin mit Problemen konfrontiert, nur wenn ich ein spezielles Zeichen innerhalb der Zeichenfolge, sonst Deserialize arbeiten als perferct, ersetzen Sie einfache Anführungszeichen wird eine teure Operation Ryt sein, wie ich arbeite riesige a Bereitstellung von Daten. Gibt es irgendwelche Einstellungen/Konfig-Level-Änderungen, die auch für die Annahme von Sonderzeichen durchgeführt werden können? –

Antwort

0

Ich habe das Problem gefunden, eigentlich ist es ein Problem mit der Eingabe, nach Datenserialisierung Eingabe sollte mit 2 Backslash für jedes Sonderzeichen angehängt werden, wie beim Abfangen der Daten in der API-Methode wird einer der Backslash entfernt Daten zugewiesen (get/set) zu der Eigenschaft. Wenn zwei Schrägstriche vorhanden sind, wird einer entfernt und ein anderer wird zum Deserailisieren der Daten verwendet.

Message ":" { 'Id': 'mich auf Dezember Text kann \' 17' , }“

bedankt sich bei allen für Sie

0

in m y vorheriger Kommentar, ich hatte das Anfangsproblem falsch gelesen. Das tut mir leid.

In JavaScript Ich kann dies tun:

JSON.parse('{"Message":"{\'Id\':\'text me on dec may\' 17\',}"}') 

Welche ganz gut funktioniert. Beachten Sie, dass ich auch die einfachen Anführungszeichen umgehen musste, die die innere Zeichenkette umgeben.

+0

angefügt In meinem Szenario, ich bin ein externer Dienst, der über JSON mit etwa 50 Felder wie ID in der obigen Nachricht, so senden wird Ich werde nicht in der Lage sein, die Nachricht zu ändern, nehme nur den Auslöser vom externen Dienst auf und deseralisiere die Daten, indem ich die Klasse mit allen 50 Attributen benutze, und schiebe zur DB, gibt es eine andere Möglichkeit, das Problem zu beheben. Vielen Dank für die schnelle Antwort –

Verwandte Themen