2016-10-11 3 views
1

У меня есть массив на test.php вот так.Почему я не могу получить доступ к json

Array(
[0] => Array 
    (
     [id] => 1 
     [name] => nikhil 
     [password] => 81dc9bdb52d04dc20036dbd8313ed055 
    ) 
[1] => Array 
    (
     [id] => 2 
     [name] => akhil 
     [password] => 81dc9bdb52d04dc20036dbd8313ed055 
    ) 
) 

преобразовать его в формат JSON и эхо его

$jsonformat = json_encode($array); 
echo $jsonformat; 

Затем я получаю JSON строку, как это на test.php

[{ 
    "id": 1, 
    "name": "nikhil", 
    "password": "81dc9bdb52d04dc20036dbd8313ed055" 
},{ 
    "id": 2, 
    "name": "akhil", 
    "password": "81dc9bdb52d04dc20036dbd8313ed055" 
}] 

Теперь, как я могу получить доступ к этой строки, как с помощью JSON AJAX вызов. Я хочу получить доступ только к имени 1-й строки этого объекта JSON. Я пробовал:

$.ajax({ 
    type: 'post', 
    url: '/test.php', 
    datatype: 'JSON', 
    success: function(result) { 
     alert(result[0].name); 
    } 
}); 

Но это не работает. Какие-либо предложения?

+0

ли вы достигаете 'success' функции (ваш JSON действует ...)? Если да, то что содержит 'result',' console.log (result); '? – jeroen

+0

'успех: функция (результат) { var data = $ .parseJSON (результат); alert (data.name);} // или попробовать один раз alert (data [0] .name) }); ' –

+1

Кстати, вам, вероятно, просто нужно изменить' datatype' на 'dataType', чтобы убедиться, что jQuery автоматически анализирует возвращенный json. – jeroen

ответ

3

Javascript чувствителен к регистру. Вы задаете тип данных json, чтобы jQuery знал, чего ожидать и проанализировать его автоматически.

Однако правильный ключ для типа данных: dataType, а не datatype.

Так что вам нужно:

$.ajax({ 
    type: 'post', 
    url: '/test.php', 
    dataType: 'JSON', 
    success: function(result) { 
     alert(result[0].name); 
    } 
}); 
+2

да, это правильно. Я проверил его, теперь код работал. +1 –

Смежные вопросы