首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解析和字符串化json对象jquery

解析和字符串化json对象jquery
EN

Stack Overflow用户
提问于 2016-09-26 05:57:55
回答 1查看 60关注 0票数 2

我有一个包含数据对象的标签,如下所示:

代码语言:javascript
运行
复制
<a class="export-json" data-button="[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]">Export json</a>

这些值通过data-button传递,如下所示:

代码语言:javascript
运行
复制
$(".export-json").attr("data-button", data);

data是一个包含json的列表。

数据是这样的:

代码语言:javascript
运行
复制
[{
name: "John",
position: "663",
a: 15,
b: 48
},
{
name: "311",
position: "663",
a: 12,
b: 48
}]

因此,我希望转换该数据对象并将其作为JSON文件下载。

代码语言:javascript
运行
复制
$(".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')),我会得到:

代码语言:javascript
运行
复制
Uncaught SyntaxError: Unexpected token o in JSON at position 1

如果我删除parseJSON,当我下载该文件时,我会看到以下内容:

代码语言:javascript
运行
复制
"[object Object],[object Object],[object Object],[object Object],[object Object]"

我不知道为什么会发生这种事?

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

代码语言:javascript
运行
复制
for (var i = 0; i < data.length; i++) {
   var item = data[i];
   console.log(item);
}

有没有人能帮帮我

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-26 07:11:36

使用jQuery data()方法而不是attr()

更改:

代码语言:javascript
运行
复制
$(".export-json").attr("data-button", data)

至:

代码语言:javascript
运行
复制
$(".export-json").data("button", data)

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

如果您确实需要在属性中使用该属性,则需要首先将数组字符串化,然后再将其赋值为属性值

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

https://stackoverflow.com/questions/39692237

复制
相关文章

相似问题

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