为了账号安全,请及时绑定邮箱和手机立即绑定

将 JSON 数组字符串化

将 JSON 数组字符串化

小唯快跑啊 2023-06-29 15:48:35
我想将 JSON 数组保存为 cookie 的形式。例如,数组如下所示。[{"name":"Push_up", "values":{"times":35, "date":"Jan 1", "sec":3}},  {"name":"Pull_up", "values":{"times":20, "date":"Mar 4", "sec":6}}]这是一个用于存储cookie的函数。function setCookie(name, value, exp=1){    var date = new Date();    date.setTime(date.getTime() + exp*24*60*60*1000);    document.cookie = name + '=' + value + ';expires=' + date.toUTCString() + ';path=/';    console.log(name + '=' + value + ';expires=' + date.toUTCString() + ';path=/');}我尝试使用 Array.toString 并将其保存为 cookie,但它没有正确字符串化,因此 cookie 未成功保存。我怎么解决这个问题?
查看完整描述

2 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

要序列化 JSON,您应该使用JSON.stringify.

但对于一般情况,您还希望转义 cookie 中具有特殊含义的字符,例如=,因此使用escape

document.cookie = escape(JSON.stringify(value));

但是,更好的是 - 服务器真的需要这些信息,还是只与客户端相关?如果它只与客户端相关,那么有一个更好的解决方案,那就是使用本地存储,例如:

localStorage.exerciseInfo = JSON.stringify(arrOfExercises);

并检索它

const arrOfExercises = JSON.parse(localStorage.exerciseInfo || '[]');

最好仅当存在客户端和服务器都需要能够持久读取的信息(例如会话或登录凭据)时才使用 cookie。


查看完整回答
反对 回复 2023-06-29
?
qq_花开花谢_0

TA贡献1835条经验 获得超6个赞

var a = [{"name":"Push_up", "values":{"times":35, "date":"Jan 1", "sec":3}}, 

 {"name":"Pull_up", "values":{"times":20, "date":"Mar 4", "sec":6}}];



JSON.stringify(a);


    "[{"name":"Push_up","values":{"times":35,"date":"Jan 1","sec":3}},

{"name":"Pull_up","values":{"times":20,"date":"Mar 4","sec":6}}]"


查看完整回答
反对 回复 2023-06-29
  • 2 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信