从cookie中的名称值对中获取值

时间:2014-12-07 16:31:12

标签: javascript jquery cookies

如果我们的网站上有一个名为cabbages的cookie,$.cookie("cabbages")会返回:

"purchaseType":"NONE","futurePurchaseType":"NONE","id":73041988,"unlimitedStatus":null,"hasFuturePrivilege":false,"corpUser":false,"suspendedStatus":null,

获取id值的规定或传统方法是什么?我想要访问者的ID,所以在这个例子中我想写一些返回73041988的Javascript。

1 个答案:

答案 0 :(得分:1)

cabbages cookie的内容与我的json对象语法非常接近。所以JSON.parse()自然会像我一样。您只需要向该字符串添加花括号以使其成为有效的json对象语法。

实际上这与cookie无关。如果任何变量包含具有与此类似的语法的数据,您始终可以使用JSON.parse()将其提取到javascript变量中。

Json对象看起来像:

{name1:value1,name2:value2,name3:value3}

类似地,json数组看起来像:

[value1,value2,value3]

你可以将JSON.parse用于任何有json sytax的数据。

您可以在下面的链接中看到一些更好的JSON语法示例。

http://json.org/example

http://www.tutorialspoint.com/json/json_syntax.htm

请注意,在javascript 中为json序列化提供本机支持的JSON API可能在某些旧版浏览器中不可用,并且函数调用将失败。

正如您在问题中提到$.cookie(),我猜您的项目已经在使用JQuery。因此,您最好使用jQuery.parseJSON(),它使用浏览器提供本机实现的JSON.parse,并在浏览器支持不可用时提供后备解析器。

This Stack Overflow thread在浏览器中提供了有关Native JSON support的更多详细信息。