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

JSON.parse syntax issue with a string in array structure

本文关键字:JSON parse 语法 问题 结构 字符串 数组      更新时间:2023-09-26

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

[[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"是一个字符串。缺少引号。