JSON.parse语法问题与数组结构中的字符串

时间:2013-08-05 22:50:00

标签: javascript json

我有一个简单的字符串,结构如下:

[[Home],[685,300],[800,380],[685,300],[Home]]

基本上是一系列坐标,用于创建路径。使用了Home,因为它会根据用户在地图上的位置进行更改。

我面临的问题是当我将它从PHP传递给JS时。

我对数据进行了json_encode并将其传递过来:

[{"path":"[[Home],[685,300],[800,380],[685,300],[Home]]","id":"1"}]

然后我为它创建我的对象after i JSON.parse:

paths = {};
for(var i in data){     
  paths[data[i].id] = {}
  paths[data[i].id].path = data[i].path;
}

问题是data[i].path仍然只是一个字符串,而不是一个可用的数组。所以我尝试添加一个辅助JSON.parse来将字符串更改为可用的数组,如下所示:

paths[data[i].id].path = JSON.parse(data[i].path);

但这会导致:

 Unexpected token H 

H显然是来自我放入数组的Home,所以我想知道我能做什么将其转换为可用的数组?

1 个答案:

答案 0 :(得分:2)

您的字符串无效JSON。 Home将是该名称的JavaScript标识符。 "Home"是一个字符串。报价不见了。