GoJS无法从toJson读取数据

时间:2016-08-08 00:52:29

标签: gojs

以下是通过在我的模型上调用方法toJson生成的Json String:

currentString = {\“class \”:\“go.TreeModel \”,\ n \“nodeDataArray \”:[\ n {\“key \”:0,\“text \”:\“Mind Map \”,\“ loc \“:\”0 0 \“},\ n {\”text \“:\”idea \“,\”parent \“:0,\”key \“: - 2,\”loc \“: \“78.22705078125 0 \”},\ n {\“text \”:\“idea \”,\“parent \”: - 2,\“key \”: - 3,\“loc \”:\“128.22705078125 0 \“} \ n]}

现在,当我尝试使用以下命令从此字符串加载数据时: myDiagram.model = go.Model.fromJson(currentString);

根本没有任何事情发生,而当我尝试加载普通模型时,它可以正常工作。

请帮忙。

2 个答案:

答案 0 :(得分:1)

String很可能在服务器端发生了变化,并且Go js没有将其作为有效的String读取,因此我通过以下代码删除了无效字符,使其成为有效的Json字符串。此外,在开头和结尾都有一些额外的报价。在此之后,它完美地运作。

    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

答案 1 :(得分:0)

首先,currentString必须是字符串,而不是JavaScript对象。

其次,你需要在每次双引号之前停止使用反斜杠。