以下是通过在我的模型上调用方法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);
根本没有任何事情发生,而当我尝试加载普通模型时,它可以正常工作。
请帮忙。
答案 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对象。
其次,你需要在每次双引号之前停止使用反斜杠。