首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不解析json字符串的jquery数据属性

不解析json字符串的jquery数据属性
EN

Stack Overflow用户
提问于 2017-03-17 17:48:04
回答 1查看 1.2K关注 0票数 0

我使用JSON.stringify()将javascript对象数组保存在html数据属性中。当我尝试使用jquery函数检索数据时,我没有得到javascript对象的反序列化数组,而是给出了简单的.data()字符串。我看到,jquery .data()函数反序列化Json字符串,如文档中所引用。

当数据属性是对象(以‘{’开头)或数组(以‘[’开头)时,则使用jQuery.parseJSON解析字符串;它必须遵循有效的JSON语法,包括引用的属性名称。如果该值不能解析为JavaScript值,则将其保留为字符串。

我认为,我的字符串是一个有效的json字符串,因为如果我尝试使用$.parseJSON,它会给出javascript对象的返回数组。

请帮帮我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-17 18:10:52

您不需要使用jQuery.data()来存储对象。只需按如下方式存储对象:

代码语言:javascript
复制
var myobject = { "name":"john", "age":30};

jQuery('#dataholder').data('theobject',myobject);

console.log(jQuery('#dataholder').data('theobject'));

console.log(jQuery('#data_attribute_method').data('theobject'));
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div id="dataholder"></div>

<div id="data_attribute_method" data-theobject='{ "name":"jim", "age":31}'></div>

jQuery将在呈现时解析(作为对象)硬编码的数据属性,但是以后设置为字符串的任何数据属性都将作为文本存储,不管是否用大括号包装。

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

https://stackoverflow.com/questions/42864079

复制
相关文章

相似问题

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