Преобразовать строку в карту JS - PullRequest
2 голосов
/ 20 июля 2011

Я делаю сообщение ajax и получаю эту дату с сервера (у меня есть контроль над сервером, если мне нужно внести изменения):

"[{4e2384d1eca4a61030d8746c:'27.7766405735821,-81.9141438476562,stuff,'},{4e237b32eca4a6103061abf7:'27.94904038727,-82.6213887207031,test again,'}]"

Я пытаюсь преобразовать ее в картуто есть

{4e2384d1eca4a61030d8746c:'27.7766405735821,-81.9141438476562,stuff,'}
{4e237b32eca4a6103061abf7:'27.94904038727,-82.6213887207031,test again,'}

в Firebug, где я получаю данные, которые я наблюдаю за

$.parseJSON(txt)  //where txt is the data received

, но я получаю ошибку

Invalid JSON:

[{4e2384d1eca4a61030d8746c: '27 .7766405735821, -81.9141438476562, материал, '}, {4e237b32eca4a6103061abf7: '27 .94904038727, -82.6213887207031, тест еще раз,'}] 101 * 101

1016 *1016* 1016 *

1 Ответ

2 голосов
/ 20 июля 2011

Если вы не можете сделать его действительным JSON, используя двойные кавычки вокруг ключей и строковых значений:

'[{"4e2384d1eca4a61030d8746c":"27.7766405735821,-81.9141438476562,stuff,"},{"4e237b32eca4a6103061abf7":"27.94904038727,-82.6213887207031,test again,"}]'

... тогда, возможно, вы застряли с eval(), но вам следует только используйте его, если вы абсолютно уверены, что данные в безопасности.

var result;
eval( 'result=' + txt );
...