Parsen von JSON mit Sonderzeichen
Ich bin mit flot zu tun, einige Diagramme, und ich habe einige Schwierigkeiten beim die tickSize mit meinem json. Ich bin mit MVC und übergeben Sie das json in ein Modell. Hier ist etwas code zu packen, der json in meine javascript Funktion:
var json = '<%=Model.Json %>';
var data = jQuery.parseJSON(json);
Hier ist, wie das Json sieht verlassen den controller:
{\"GraphData\":[{\"X\":1333929600000,\"Y\":0.0},{\"X\":1333670400000,\"Y\":0.46}],\"Max\":1333324800000,\"Min\":1333929600000,\"TickSize\":\"[1, 'day']\"}
Dem Teil, dass ich habe Probleme mit der "TickSize." Wie Sie sehen können, "[1, 'Tag']" die eckigen Klammern. Ich denke, es ist eine parsing-problem, weil [] bedeutet in der Regel ein array. Flot will die tick size, die in diesem format. Wie gestalte ich meine Json, damit ich greifen kann, die TickSize?
Ich denke, TickSize ist als ein string und kein array in JSON, da es zitiert wurde. Wenn es nicht zitiert, wäre es ein array.
InformationsquelleAutor aelstonjones | 2012-04-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Problem ist, die einfachen Anführungszeichen in den string-Wert, da Sie versuchen, wickeln Sie den JSON-string in Sie als gut. Die resultierende JavaScript (gekürzt):
Weil der jetzt 4-Anzahl der single-quotes
day
ist nicht eigentlich Teil der Zeichenfolge und erstellt eine syntax-Fehler.Aber, sollten Sie nicht sogar brauchen, zu zitieren und Parsen der JSON, da es, abgeleitet von der JavaScript-syntax:
Wenn Sie die string-Darstellung können Sie entweder stringify es in JavaScript:
- Oder-Flucht-single-quotes innerhalb des Strings server-Seite:
JSON.stringify(<%= HttpUtility.JavaScriptStringEncode(Model.Json, addDoubleQuotes: true) %>)
.InformationsquelleAutor Jonathan Lonowski
Es ist, weil Sie haben, umgeben Sie die Zeichenfolge mit
'
statt"
. Dies verursacht die Zeichenfolge zu kündigen mit Ihrem ersten'
.Schreiben Sie Ihre erste Zeile
InformationsquelleAutor Vincent McNabb
Lösung : ersetzen einzelner backslash '\' mit doppelten '\\' back slash.
Für neue-Zeile-Zeichen '\n' '\\n'
Arbeitet mit QuickInfo
InformationsquelleAutor Vaibhav.Inspired