javascript json объект декодирования - PullRequest
1 голос
/ 06 сентября 2011

Я новичок в JSON и AJAX и надеялся, что кто-нибудь может мне помочь.

Используя AJAX-запрос к сценарию PHP, я получаю некоторые данные из базы данных SQL ->, закодированные в виде строки JSON, и отправляюобратно к вызывающему javascript.

Это данные, которые я получаю

Array[{"categoryName":"Apartments For Rent"},{"categoryName":"Apartments For Sale"},{"categoryName":"Room For Rent (Shared)"},{"categoryName":"Paying Guest"},{"categoryName":"Office\/Shop\/Commercial Space"},{"categoryName":"Land"},{"categoryName":"Parking Spots"},{"categoryName":"Other"}]

Как я могу получить отдельные значения 'CategoryName' из этого (в цикле while)?

РЕДАКТИРОВАТЬ: PHP КОД, КОТОРЫЙ ОТПРАВЛЯЕТ ДАННЫЕ JSON

    $arr = array();
    while($row = mysql_fetch_array($temp,MYSQL_ASSOC))
    {
        $arr[]=$row;
    }
    echo json_encode($arr);

Спасибо за помощь
Ankit

Ответы [ 3 ]

1 голос
/ 06 сентября 2011

Используйте eval (), чтобы декодировать его в объект javascript, а затем зациклить его, но вам придется удалить «Массив» в начале на стороне php или с помощью javascript.

var jsonStr = '[{"categoryName":"Apartments For Rent"},{"categoryName":"Apartments For Sale"}]';
jsonObj = eval("("+jsonStr+")");
for(var i in jsonObj){
  categoryName = jsonObj[i].categoryName;
}

От: http://www.json.org/js.html

0 голосов
/ 06 сентября 2011
i=0;
do{
    alert(data[i].categoryName);
    i++;
}
while(i<=data.length);

Как описано Дарином Димитровым, но в цикле while.

0 голосов
/ 06 сентября 2011

Вы можете перебрать массив и получить доступ к отдельным элементам по их индексу:

for (var i = 0; i < data.length; i++) {
    alert(data[i].categoryName);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...