Laden...

json parsen klappt nicht immer

Erstellt von S.R. vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.581 Views
S
S.R. Themenstarter:in
221 Beiträge seit 2007
vor 10 Jahren
json parsen klappt nicht immer

Hallo,

ich möchte ein JSON parsen und verwende dafür folgenden Code:

string _json = "";
var serializer = new JavaScriptSerializer();
var data = serializer.Deserialize(_json, typeof(object));

Im ersten Schritt setze ich _json auf

string _json = "{\"Attributes\":[{\"id\":\"1\",\"file\":\"D:\\test.pdf\"}],\"ErrorID\":\"0\"}"

Damit klappt es wunderbar. Ändere ich den Wert allerdings von "test.pdf" auf "stefan.pdf" oder "alex.pdf" dann gibt es folgende Exception:

Nicht erkannte Escapesequenz. (37): {"Attributes":[{"id":"1","file":"D:\alex.pdf"}],"ErrorID":"0"}

Ich hab echt keinen blassen Schimmer, wieso dies nicht klappt... Bin total verwundert 😃 Bin für jeden Tipp dankbar!!!

Gruß

Stefan

16.842 Beiträge seit 2008
vor 10 Jahren

{"Attributes":[{"id":"1","file":"D:\alex.pdf"}],"ErrorID":"0"}
ist so auch nicht gültig.
{"Attributes":[{"id":"1","file":"D:\\alex.pdf"}],"ErrorID":"0"}
wäre es.

Ansonsten würdest Du versuchen \a zu escapen (entspricht auch dem Position Deiner Fehlermeldung: Zeichen Nr 37)
PS: verwende besser Json.NET von Newtonsoft.

S
S.R. Themenstarter:in
221 Beiträge seit 2007
vor 10 Jahren

Hi,

danke für deine schnelle Antwort. Ich nutze bereits

string _json = "{\"Attributes\":[{\"id\":\"1\",\"file\":\"D:\\alex.pdf\"}],\"ErrorID\":\"0\"}"

D:\alex.pdf zeigt er in der Exception an 😃

Wieso sollte denn \a und \s escaped werden?

Gruß

Stefan

16.842 Beiträge seit 2008
vor 10 Jahren

Es geht darum, dass Du Den Backslash escapen musst.
Aus D:\ wird eben D:\

In Deinem _json String brauchst Du also 4 \ vor alex.pdf und nicht 2.
Tipp: [FAQ] Was bedeutet das @ (=at) vor String-Literalen? Und: Wissenswertes zu Escape-Sequenzen