Javascript:解析document.cookie JSON对象时出现问题

Javascript:解析document.cookie JSON对象时出现问题,javascript,django,json,cookies,Javascript,Django,Json,Cookies,在服务器上,我将JSON对象存储为cookie(使用Django/JSON.dumps),看起来是这样的: '{"name": "Simon", "gender": "M"}' "user="{\"name\": \"Simon\"\054 \"gender\": \"M\"}"; 在客户端上运行document.cookie时,我可以看到cookie,看起来是这样的: '{"name": "Simon", "gender": "M"}' "user="{\"name\": \"Simon

在服务器上,我将JSON对象存储为cookie(使用Django/JSON.dumps),看起来是这样的:

'{"name": "Simon", "gender": "M"}'
"user="{\"name\": \"Simon\"\054 \"gender\": \"M\"}";
在客户端上运行document.cookie时,我可以看到cookie,看起来是这样的:

'{"name": "Simon", "gender": "M"}'
"user="{\"name\": \"Simon\"\054 \"gender\": \"M\"}";
我有一个按名称检索cookie的小函数(getCookie('user')),它返回一个字符串:

"{\"name\": \"Simon\"\054 \"gender\": \"M\"}"
我想将其解析回一个JSON对象,以便在客户端上进一步使用,但是JSON.parse()返回错误:“SyntaxError:Unexpected number”

奇怪的是,如果您运行以下命令:

JSON.parse("{\"name\": \"Simon\"\054 \"gender\": \"M\"}") 
直接在控制台中,它工作正常。有什么想法吗

如果有更好的方法来储存饼干等,我愿意接受


提前感谢。

\054
正在破坏您的json。它是一个编码的
(逗号)

这:


应该可以。逗号在Cookie中是非法字符。。。而且不是唯一的一个,为了防止出现问题,您可以在放入cookie之前对JSON进行编码:

encodeURIComponent('{"name": "Simon", "gender": "M"}');
//return "%7B%22name%22%3A%20%22Simon%22%2C%20%22gender%22%3A%20%22M%22%7D"

decodeURIComponent('%7B%22name%22%3A%20%22Simon%22%2C%20%22gender%22%3A%20%22M%22%7D');
//return '{"name": "Simon", "gender": "M"}'
这个答案更好地解释了cookie中“允许字符”的世界:


:)我希望它能帮助…

在那里做什么?\054不能在Cookie中插入逗号,因为在Cookie逻辑中总是有一个分隔符,所以:
'{\'name\':'Simon\'\054\'gender\':'M\'}。替换(“\054”,”)
first.the\wont replace,当我尝试string.replace('\054',',')我得到了相同的stringbackslash,但没有被替换,请尝试双反斜杠\\+1,因为你是正确的\054破坏了JSON,现在只是想弄清楚为什么我不能替换它:/my bad。。。为了便于提问,我只在JSON中显示了2项,实际上有很多数据。您的答案是正确的,但它只是替换了\054的一个实例。str.replace(/\\054/g,“,”)成功了谢谢你的帮助我会在回答中加上:)很高兴能提供一些帮助。+1关于“允许的cookies”的信息,我希望在服务器上创建一些可以在客户端轻松解析为JSON的东西,Python并没有让它变得容易