0

以下は、モデルでメソッド toJson を呼び出すことによって生成される Json 文字列です。

currentString= { \"class\": \"go.TreeModel\",\n \"nodeDataArray\": [ \n{\"key\":0, \"text\":\"マインド マップ\", \"loc\":\"0 0\"},\n{\"テキスト\":\"アイデア\", \"親\":0, \"キー\":-2, \"loc\ ":\"78.22705078125 0\"},\n{\"テキスト\":\"アイデア\", \"親\":-2, \"キー\":-3, \"loc\":\ "128.22705078125 0\"}\n ]}

今、次を使用してこの文字列からデータをロードしようとすると: myDiagram.model = go.Model.fromJson(currentString);

通常のモデルをロードしようとすると、何も起こりませんが、動作します。

助けてください。

4

2 に答える 2

1

String はおそらくサーバー側で変更され、Go js はそれを有効な String として読み取っていなかったため、無効な文字を削除して、以下のコードを使用して有効な Json String にしました。また、最初と最後に余分な引用がいくつかありました。この後、それは完全に機能しました。

    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
于 2016-08-10T15:10:57.170 に答える
0

まず、currentStringJavaScript オブジェクトではなく文字列である必要があります。

次に、各二重引用符の前にバックスラッシュを使用しないようにする必要があります。

于 2016-08-09T02:35:07.993 に答える