Проблемы парсинга JSON из PHP - PullRequest
       5

Проблемы парсинга JSON из PHP

0 голосов
/ 08 октября 2009

Я получаю ответ от моего сервера через AJAX с массивом json_encode (функция php).Тем не менее, я испытываю затруднения при разборе.

Я могу сделать это:

alert(response);

Но это просто дает мне кучу текста примерно так:

[{"user_id ":" Dev_V2_MEH_0910_M03_v03c_NEW_CODE_03 "......" grouper_opae_algorithm ":" nap_v42lp "}]

Обратите внимание, я много вырезал.Я пробовал это:

alert(response[0].user_id);

Это просто дает мне неопределенное.

Что я делаю не так?

Ответы [ 4 ]

5 голосов
/ 08 октября 2009

Вы возвращаете его как строку - вам нужно преобразовать его в объект.

Если вы используете библиотеку, такую ​​как jQuery или Prototype, то для этого будет встроенный метод. В противном случае вы можете использовать eval:

object = eval('(' + response + ')');

Это открывает некоторые дыры в безопасности - если функция была введена в JSON, она будет выполнена.

1 голос
/ 08 октября 2009

Самым простым способом анализа JSON является команда eval ():

json = eval(response);
alert(json[0].user_id);

Лучше использовать библиотеки, такие как Prototype или jQuery, чтобы помочь санировать ваш JSON, если источник не заслуживает доверия.

0 голосов
/ 08 октября 2009

Крокфорд не рекомендует использовать функцию eval ().

http://json.org/js.html

Вместо этого вы можете использовать его функцию json parse / stringify

http://json.org/json2.js

0 голосов
/ 08 октября 2009

Вы также можете скачать официальный анализатор JSON для javascript, который позволит вам:

var myObj = JSON.parse(respsonse);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...