首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Cytoscape网络保存为平面JSON?

如何将Cytoscape网络保存为平面JSON?
EN

Stack Overflow用户
提问于 2021-07-02 19:37:25
回答 1查看 207关注 0票数 0

我怎样才能将一个Cytoscape网络保存为一个扁平的JSON文件?

cytoscape.js示例通常将底层网络数据存储为一个平面data.json文件(例如,colas图,也请参阅https://js.cytoscape.org/#notation/elements-json)。

这与将图形保存为Cytoscape文件时获得的分组或键控格式形成了鲜明对比(在Cytoscape:file > Export > Network to File > Cytoscape JSON (*.cyjs))中)。

备注: 文档表示我可以使用cy.json()导出图形的JSON表示,但我不知道如何调用这个命令(相对于javascript而言,我是个新手)。

EN

回答 1

Stack Overflow用户

发布于 2021-08-12 08:56:05

您只需调用.json()来获取一个json对象,然后按您的意愿下载它。

这里有一个例子。我认为StackOverflow正在阻止下载文件,但是如果您复制并粘贴这段代码,它应该是工作的。

代码语言:javascript
复制
document.addEventListener("DOMContentLoaded", function() {
  var cy = (window.cy = cytoscape({
    container: document.getElementById("cy"),
    style: [{
        selector: "node",
        style: {
          content: "data(id)"
        }
      },
      {
        selector: "edge",
        style: {
          "curve-style": "bezier",
          "target-arrow-shape": "triangle"
        }
      }
    ],
    elements: {
      nodes: [{
        data: {
          id: "a"
        }
      }, {
        data: {
          id: "b"
        }
      }],
      edges: [{
        data: {
          id: "ab",
          source: "a",
          target: "b"
        }
      }]
    },
    layout: {
      name: "grid"
    }
  }));


  cy.ready(function() {
  const json = cy.json(); // take json from cytoscape
  // download json as you want
    const data = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(json));

    const a = document.createElement('a');
    a.href = 'data:' + data;
    a.download = 'data.json';
    a.innerHTML = 'download JSON';

    const container = document.getElementById('container');
    container.appendChild(a);
  });
});
代码语言:javascript
复制
body {
  font-family: helvetica neue, helvetica, liberation sans, arial, sans-serif;
  font-size: 14px
}

#cy {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  z-index: 1;
}

h1 {
  opacity: 0.5;
  font-size: 1em;
  font-weight: bold;
}
代码语言:javascript
复制
<head>
  <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1">
  <script src="https://unpkg.com/cytoscape/dist/cytoscape.min.js"></script>
  

</head>

<body>
  <div id="cy"></div>
  <div id="container" style="position:absolute;top:10;left:10;z-index:1"></div>
</body>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68230498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档