javascript - 将 JSON 数据保存到本地文件

标签 javascript jquery

在我的程序中,我使用 JSON.stringify() 获取 JSON 格式数据。现在我想将此 JSON 对象保存在文件中。

我的问题是:当单击 jquery 上的按钮时,如何将 JSON 数据保存到本地创建的文件中?

我的 JSON 对象是这样的:

{"tasks":[{"blockId":"startpoint4","tasktype":"startpoint","properties":[],"positionX":430,"positionY":230},{"blockId":"userTask5","tasktype":"userTask","properties":[],"positionX":630,"positionY":230}],"connections":[],"properties":[],"numberOfElements":5}

最佳答案

您可以使用Blob构造函数和URL.createObjectURL()创建一个临时 anchor 标记,并将 download 属性设置为可下载文件应具有的名称,然后在该 anchor 元素上触发 click 事件。不幸的是,这不适用于任何浏览器,但支持 Blob constructor其实还不错。

这是一个例子。

var data = '{"tasks":[{"blockId":"startpoint4","tasktype":"startpoint","properties":[],"positionX":430,"positionY":230},{"blockId":"userTask5","tasktype":"userTask","properties":[],"positionX":630,"positionY":230}],"connections":[],"properties":[],"numberOfElements":5}';


document
.querySelector('#download')
.addEventListener('click', function() {

  var blob = new Blob( [ data ], {
      type: 'application/octet-stream'
  });

  var url = URL.createObjectURL( blob );
  var link = document.createElement( 'a' );
  link.setAttribute( 'href', url );
  link.setAttribute( 'download', 'data.json' );

  link.click()

  URL.revokeObjectURL(url)

})
<button id="download">Download</button>

关于javascript - 将 JSON 数据保存到本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45277471/

相关文章:

javascript - 如何添加样式 - 如边距 - 来 react 组件?

javascript - 玩转 HTML 有序列表编号元素符号

javascript - 从元素复制 HTML,用 jQuery 替换文本,然后附加到元素

jquery - 我想在我点击的地方画一条线,就像我们在游戏中点击昆虫时, Frog 的舌头捕获了那只昆虫,这在 HTML 中可能吗?

jquery - 如何使用 chrome 扩展/插件访问 HTML 元素?

javascript - 在子组件Vue Js中使用父组件数据

javascript - 如何在没有表单的情况下发布数据

javascript - 取消绑定(bind)点击后的对象的点击事件?

jquery - 使用 jQuery 设置以唯一单词开头的 localStorage 键的计数

javascript - 进行 Ajax 调用的其他方法有哪些?