我正在处理一些json编码数据,但我无法正确访问它,这是我做的一些测试:
代码片段1:
var json = [ {"MarkerId":1,"0":1,"UserId":2147483647,"1":2147483647,"locX":51,"2":51,"LocY":4,"3":4}, {"MarkerId":2,"0":2,"UserId":2147483647,"1":2147483647,"locX":55,"2":55,"LocY":4,"3":4}]; console.log(json[0][0]);
输出:
1
代码片段2:
var json2 = getCookie('markers'); console.log(json2[0][0]);
输出:
[
代码片段3:
console.log(getCookie('markers'));
输出:
[{"MarkerId":1,"0":1,"UserId":2147483647,"1":2147483647,"locX":51,"2":51,"LocY":4,"3":4},{"MarkerId":2,"0":2,"UserId":2147483647,"1":2147483647,"locX":55,"2":55,"LocY":4,"3":4}]
正如你所看到的,当我使用测试3硬编码的结果时,我可以很好地访问它,但是当我只在代码中使用它时我会得到不同的东西
有谁知道如何做到这一点?
Cookies只存储字符串.您需要使用JSON.parse()
它们将它们转换回对象.此外,内容json
不是JSON,而是JAvaScript对象(实际上是数组).
var obj2 = JSON.parse(getCookie('markers') || '[]'); console.log(obj2[0][0]);
该|| '[]'
cookie是否因为一个空字符串丢失或回落到一个空数组undefined
不会是有效的JSON.