1

次のような構造の単純な文字列があります。

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

基本的には、パスを作成するための座標の配列です。が使用されるのHomeは、これがマップ上のユーザーの位置に基づいて変化するためです。

私が直面している問題は、PHP から JS に渡すときです。

データを json_encode して、次のように渡します。

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

次に、afterJSON.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いるので、それを使用可能な配列に変換するにはどうすればよいのでしょうか?

4

1 に答える 1

2

あなたの文字列は有効な JSON ではありません。Homeその名前の JavaScript 識別子になります。"Home"は文字列です。引用符がありません。

于 2013-08-05T22:52:17.600 に答える