数组结构中的字符串出现JSON.parse语法问题
JSON.parse syntax issue with a string in array structure
我有一个简单的字符串,其结构如下:
[[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
,所以我想知道如何将其转换为可用阵列?
您的字符串不是有效的JSON。Home
将是该名称的javascript标识符。"Home"
是一个字符串。缺少引号。
相关文章:
- JSON.parse没有'不能使用Javascript
- Javascript JSON.parse not working
- 当其他解析器认为意外的令牌有效时,json.parse会失败
- 无法将JSON.parse与JSON_encode中的结果一起使用
- 在JSON.parse Javascript中字符串化Java对象抛出错误
- JSON.parse,已经在try/catch块中,仍然抛出语法错误
- 停止JSON.parse()从JSON字符串数据中删除尾随零
- JSON.parse给了我一个错误,但JSONLint说它'是一个有效的json
- 从JSON.parse获取元素
- JSON.parse:应为''或'}'在对象的属性值之后
- AJAX语法错误:JSON.parse:意外字符
- 如何避免JSON.stringify在特殊情况下返回undefined,从而为JSON.parse创建字符串失败
- 使用JSON.parse时出现无效字符javascript错误
- 动态地将过滤器应用于 JSON.parse()
- 为什么 JSON.parse 给出无效的字符
- 想要将 JSON 字符串传递给 javascript 变量 [ JSON.parse(),eval()] 对我不起作用,
- 使用 JSON.parse 将字符串(变量)转换为对象,错误意外标记
- “JSON.parse(str)”返回“意外令牌c”,但str是一个字符串
- AngularJS json.parse 在 json 数据的第 1 行第 1 列处意外的数据结尾
- 带有Ajax请求的Javascript JSON.parse函数n〃;新行转义字符