jquery数据属性不解析json字符串
Posted
技术标签:
【中文标题】jquery数据属性不解析json字符串【英文标题】:jquery data attribute not parsing json string 【发布时间】:2017-08-09 09:33:31 【问题描述】:我正在使用JSON.stringify()
在 html 数据属性中保存 javascript 对象数组。当我尝试使用 jquery .data()
函数检索数据时,我没有得到反序列化的 javascript 对象数组,而是给了我普通的 json 字符串。我读到,jquery .data()
函数反序列化文档中引用的 Json 字符串
当数据属性为对象(以''开头)或数组(以'['开头)时,则使用jQuery.parseJSON解析字符串; 它必须遵循有效的 JSON 语法,包括引用的属性名称。如果 该值不可解析为 JavaScript 值,它保留为 字符串
我认为,我的是一个有效的 json 字符串,因为如果我尝试 $.parseJSON
,它会返回 javascript 对象数组。
请帮忙!
【问题讨论】:
【参考方案1】:您不需要使用 jQuery.data() 对对象进行字符串化来存储它们。像这样存储对象:
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'));
<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 将在渲染时解析(作为对象)硬编码的数据属性,但之后您设置为字符串的任何数据属性都将存储为文本,无论是否用花括号括起来。
【讨论】:
以上是关于jquery数据属性不解析json字符串的主要内容,如果未能解决你的问题,请参考以下文章