我使用内置导出器将Cytoscape 3.1 BETA 3中的蛋白质 - 蛋白质网络导出到JSON( cyjs )文件。我尝试使用Cytoscape.js库将此 cyjs 文件导入到Web应用程序,但是我失败了。
我在这里阅读了gcpdev昨天(Exporting and importing JSON data to Cytoscape.js)提出的问题,但这对我没有帮助。
导入的JavaScript库:jQuery-1.11,Cytoscape.js,Arbor,Arbor-tween。 我的代码是:
<script type="text/javascript">
$('#cy').cytoscape({
layout: {
name: 'arbor',
liveUpdate: true,
},
ready: function(){
window.cy = this;
var jsonfile = "src/inside_sc.cyjs";
$(document).ready(function() {
$.getJSON(jsonfile, function(json) {
cy.add( JSON.parse( json ) );
});
});
}
});
</script>
我总是在Chrome控制台上收到如下错误消息:
Uncaught SyntaxError: Unexpected token o index.html:38
(anonymous function) index.html:38
j jquery-1.11.0.min.js:2
k.fireWith jquery-1.11.0.min.js:2
x jquery-1.11.0.min.js:4
b jquery-1.11.0.min.js:4
其中 index.html 是我的文件和行:38是:
cy.add( JSON.parse( json ) );
我收到了与更改相同的错误消息。如果我添加一些样式和基本节点&amp;边缘,也没有$.parseJSON()
函数。
我尝试将此行更改为cy.add( json );
结果与上述问题相同:
An element must be of type `nodes` or `edges`; you specified `undefined`
Uncaught TypeError: Cannot read property 'single' of undefined
当我尝试向控制台显示JSON信息时,如console.log( json );
它可以正常工作。
我的剧本出了什么问题?我该怎么办?
答案 0 :(得分:1)
据我所知,从Cytoscape-desktop导出的JS不是cy.add()
或init选项的直接替代品。您需要检查Cytoscape-desktop生成的文件,并在init选项(options.elements
)中指定JSON中元素的路径。