gpt4 book ai didi

javascript - 解析和字符串化一个json对象jquery

转载 作者:行者123 更新时间:2023-11-30 00:02:49 25 4
gpt4 key购买 nike

我有一个标签,其中包含这样一个数据对象:

<a class="export-json" data-button="[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]">Export json</a>

这些值像这样在数据按钮上传递:

$(".export-json").attr("data-button", data);

data 是一个包含 json 的列表。

数据是这样的:

[{
name: "John",
position: "663",
a: 15,
b: 48
},
{
name: "311",
position: "663",
a: 12,
b: 48
}]

所以我想转换该数据对象并将其下载为 JSON 文件。

$(".export-json").click(function(){
var data = $.parseJSON($(this).attr('data-button'));
exportJson(this, data);
});

function exportJson(element, data) {
var results = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(data));
element.setAttribute("href", "data:"+results);
element.setAttribute("download", "data.json");
}

如果我因为这里的 parseJSON 喜欢这个 $.parseJSON($(this).attr('data-button')) 我得到:

Uncaught SyntaxError: Unexpected token o in JSON at position 1

如果我删除 parseJSON,当我下载文件时我有这个:

"[object Object],[object Object],[object Object],[object Object],[object Object]"

我不知道为什么会这样?

如果我浏览数据,所有内容都会正确打印:

for (var i = 0; i < data.length; i++) {
var item = data[i];
console.log(item);
}

谁能帮帮我

最佳答案

使用 jQuery data() 方法代替 attr()

改变:

$(".export-json").attr("data-button", data)

收件人:

$(".export-json").data("button", data)

然后它将存储为数组,不需要任何解析

如果你真的需要在属性中使用它,你需要先将数组字符串化,然后再分配为属性值

关于javascript - 解析和字符串化一个json对象jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39692237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com