我正在尝试使用外部 JSON 文件在 cytoscape.js 中创建图形。目标是获得图表中基于事件的变化(即输入数据的变化)。为了实现这一目标,我想到了使用外部 JSON 文件。
使用以下调用来获取 JSON 内容:
var treeData;
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
treeData = JSON.parse(this.responseText);
}
};
xhttp.open("GET", "http://localhost/myfile.json", true);
xhttp.send();
并向元素提供treeData:
elements: treeData,
(我也尝试过不解析 JSON)。
以下是JSON文件的结构:
{
"nodes": [
{ "data": { "id": "j", "name": "Jerrymmmmmmm", "faveColor": "#6FB1FC", "size": 150} },
{ "data": { "id": "e", "name": "Elainemmmmmmm", "faveColor": "#EDA1ED", "size": 100 } },
{ "data": { "id": "k", "name": "Kramemmmmrmmm", "faveColor": "#86B342", "size":90 } },
{ "data": { "id": "g", "name": "Georgemmmmmmm", "faveColor": "#F5A45D", "size":75} },
],
"edges": [
{ "data": { "source": "j", "target": "e", "faveColor": "red", } },
{ "data": { "source": "j", "target": "k", "faveColor": "red",} },
{ "data": { "source": "j", "target": "g", "faveColor": "black",} },
]
}
出现以下错误: JSON 中 XMLHttpRequest.xhttp.onreadystatechange 处 JSON.parse () 位置 1449 处出现意外标记]。
非常感谢您的帮助...谢谢
最佳答案
你那里多了一些逗号,伙计。在“红色”之后,在“黑色”之后,在最后一个“节点”对象之后,以及在最后一个“边缘”对象之后。试试这个:
{
"nodes": [{
"data": {
"id": "j",
"name": "Jerrymmmmmmm",
"faveColor": "#6FB1FC",
"size": 150
}
}, {
"data": {
"id": "e",
"name": "Elainemmmmmmm",
"faveColor": "#EDA1ED",
"size": 100
}
}, {
"data": {
"id": "k",
"name": "Kramemmmmrmmm",
"faveColor": "#86B342",
"size": 90
}
}, {
"data": {
"id": "g",
"name": "Georgemmmmmmm",
"faveColor": "#F5A45D",
"size": 75
}
}],
"edges": [{
"data": {
"source": "j",
"target": "e",
"faveColor": "red"
}
}, {
"data": {
"source": "j",
"target": "k",
"faveColor": "red"
}
}, {
"data": {
"source": "j",
"target": "g",
"faveColor": "black"
}
}]
}
此外,jsonlint 是一个非常有用的工具,可以帮助您调试 JSON 错误:http://jsonlint.com/
关于javascript - cytoscape.js 的外部 json 文件调用期间出现意外标记] 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41744352/