2016-08-08 4 views
0

lesen Nach dem JSON-String durch Aufruf der Methode toJson auf meinem Modell hergestellt:GoJS keine Daten von toJson

currentString = {\ "class \": \ "go.TreeModel \", \ n \“ nodeDataArray \ ": [\ n {\" key \ ": 0, \" text \ ": \" Mind Map \ ", \" loc \ ": \" 0 0 \ "}, \ n {\" text \ ": \" Idee \ ", \" Eltern \ ": 0," Schlüssel ": - 2," Lok \ ": \" 78.22705078125 0 \ "}, \ n {\" Text \ ": \" idee \ ", \" parent \ ": - 2, \" key \ ": - 3," loc \ ": \" 128.22705078125 0 \ "} \ n]}

Jetzt, wenn ich versuche, Daten zu laden aus dieser Zeichenfolge mit: myDiagram.model = go.Model.fromJson (currentString);

Nichts passiert überhaupt, während wenn ich versuche, ein normales Modell zu laden, funktioniert es.

Bitte helfen.

Antwort

0

Zuerst muss currentString eine Zeichenfolge sein, kein JavaScript-Objekt.

Zweitens müssen Sie den Backslash vor jedem doppelten Anführungszeichen beenden.

+0

CurrentString wurde von GoJs als String gespeichert, aber vielleicht hat es sich geändert, als ich es vom Firebase Server hochgeladen oder heruntergeladen habe, und das habe ich erhalten. Currentstring wurde nur in diesem Format zurückgegeben. Danke für Ihre Hilfe Walter, ich konnte es lösen, indem ich diese Zeichenfolge/Objekt auf das benötigte Format änderte, indem ich die \ und \ n entfernte und es funktionierte perfekt. –

1

Die Zeichenfolge wurde am wahrscheinlichsten auf der Serverseite geändert und go js hat sie nicht als gültigen String gelesen, daher habe ich die ungültigen Zeichen entfernt, um aus dem folgenden Code einen gültigen Json String zu machen. Außerdem gab es ein paar zusätzliche Zitate am Anfang und am Ende. Danach hat es perfekt funktioniert.

String trimCurrentString=currentString.replaceAll("\\\\n", " ");//removes /n from the string. 
       String doubletrimCurrentString=trimCurrentString.replaceAll("\\\\","");//removes \from the String. 
       StringBuilder stringBuilder=new StringBuilder(doubletrimCurrentString); 
       stringBuilder.deleteCharAt(0);//removes the quote from beginning 
       stringBuilder.deleteCharAt((stringBuilder.length())-1);//removes the quote from the end