2 回答

TA贡献1757条经验 获得超7个赞
JSON.stringify()在将数据存储在属性中之前使用。它基本上是将数据序列化为字符串。
var div = document.getElementById("testDiv");
var obj = JSON.stringify({name: "Test1", value: 100});
div.setAttribute("data-obj", obj);
var arrayAsJSON = JSON.stringify([59, 40, 3, 2, 1, 0]);
div.setAttribute("data-arr", arrayAsJSON);
然后JSON.parse()在获取属性值之后和呈现它之前使用。这将根据您的情况将其反序列化回 javascript 对象、数组或简单值。

TA贡献1810条经验 获得超4个赞
您需要使用JSON.stringify(和parse读取)将对象/数组更改为 json(字符串)
var obj = {name: "Test1", value: 100};
var arr = [59, 40, 3, 2, 1, 0];
testDiv.dataset.obj = JSON.stringify(obj);
testDiv.dataset.arr = JSON.stringify(arr);
console.log( JSON.parse(testDiv.dataset.obj).name );
console.log( JSON.parse(testDiv.dataset.arr)[2] );
<div id="testDiv"></div>
添加回答
举报