我正在寻找将stringfied json对象下载为文件的方法..
我确实有一个解决方案,如这个小提琴示例中所示:
我的工作版本看起来像这样
HTML
From data attribute of span:
<span id="a-data"></span>
<span id="obj-data" data-obj2='{"obj-1": "text-1","obj-2": "text-2","obj-3": "text-3"}'></span>
的JavaScript
var obj = $("#obj-data").data("obj2");
var data = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(obj));
$('<a href="data:' + data + '" download="data.json">Download Me</a>').appendTo("#a-data");
我更喜欢我可以使用这个HTML。你能建议一种方法来解决这个问题吗?
From data attribute of self:
<div id="data" data-obj='{"obj-1": "text-1","obj-2": "text-2","obj-3": "text-3"}'>
Download Me
</div>
答案 0 :(得分:10)
尝试用"application/json"
替换"text/json"
,在.click()
元素DOM
上调用a
,在a
处理程序中删除click
$("#data").click(function() {
$("<a />", {
"download": "data.json",
"href" : "data:application/json," + encodeURIComponent(JSON.stringify($(this).data().obj))
}).appendTo("body")
.click(function() {
$(this).remove()
})[0].click()
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<div id="data" data-obj='{"obj-1": "some text","obj-2": "text-2","obj-3": "text-3"}'>
Download Me
</div>
jsfiddle http://jsfiddle.net/kda2rdLy/