VisJs如何导入json数据而不创建重复的边?
如何导入新的json数据(gephiJSON),而不复制现有数据中的边 我的代码非常简单:VisJs如何导入json数据而不创建重复的边?,json,import,duplicates,gephi,vis.js,Json,Import,Duplicates,Gephi,Vis.js,如何导入新的json数据(gephiJSON),而不复制现有数据中的边 我的代码非常简单: var parsed = vis.network.gephiParser.parseGephi(gephiJSON, parserOptions); nodes.update(parsed.nodes); edges.update(parsed.edges); 恐怕我没有找到任何避免/检查重复项的选项或功能 谢谢你的帮助 *我无法控制导入的数据以避免重复。我使用nodes.update方法仅更新现有网络
var parsed = vis.network.gephiParser.parseGephi(gephiJSON, parserOptions);
nodes.update(parsed.nodes);
edges.update(parsed.edges);
恐怕我没有找到任何避免/检查重复项的选项或功能
谢谢你的帮助
*我无法控制导入的数据以避免重复。我使用nodes.update方法仅更新现有网络。要创建新的节点,我使用nodes.add。因此,在尝试添加之前检查网络中的现有数据非常重要。我为JSON使用了一个双循环例程和一个拼接方法来删除重复的节点和边。我的代码是这样的(请耐心等待,我是JavaScript新手):
函数recibedatos(){
如果(http_request.readyState==4){
如果(http_request.status==200){
fixedResponse=http_request.responseText;
jsonObj=JSON.parse(fixedResponse);
试一试{
对于(var i=0;我不熟悉Gephi API,但我知道Gephi不支持重复边。当您导入图形文件时,它会自动合并边。是的。就是这样。实际上,它会自动合并。
function recibedatos() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
fixedResponse = http_request.responseText;
jsonObj = JSON.parse(fixedResponse);
try {
for (var i=0;i<jsonObj.nodos.length;i++) {
for (var j=0;j<nodes.length;j++) {
if (jsonObj.nodos[i].id==nodes.get()[j].id) {
jsonObj.nodos.splice(i,1);
i-=1;
break;
}
}
}
nodes.add(jsonObj.nodos);
}
catch (err) {
alert(err);
}
try {
for (var i=0;i<jsonObj.vinculos.length;i++) {
for (var j=0;j<edges.length;j++) {
if (jsonObj.vinculos[i].to==edges.get()[j].to && jsonObj.vinculos[i].from==edges.get()[j].from && jsonObj.vinculos[i].label==edges.get()[j].label) {
jsonObj.vinculos.splice(i,1);
i-=1;
break;
}
}
}
edges.add(jsonObj.vinculos);
}
catch (err) {
alert(err);
}
} else {
alert("Ocurrio un problema con la URL.");
}
fixedResponse=null;
jsonObj=null;
}
}