2015-10-27 5 views
-1

Я пытаюсь разобрать ответ JSON с JQuery:Неопределенное при попытке разобрать JSON

<script> 
    $(document).ready(function() { 
     $("button").click(function() { 
      $.ajax({ 
       url : 'test.php', 
       type : 'GET', 
       data : { 
        name : "Peter", 
       }, 
       dataType : 'json', 
       success : function(response) { 
        console.log(response); 
        alert(response.name) 
       }, 
       error : function() { 
        console.log("error") 
       } 
      }); 
     }); 
    }); 
</script> 

Я хочу, чтобы получить имя в окне предупреждения, но все я получаю является undefined.

Это результат в консоли:

Object {results: Array[1]} 
    results: Array[1] 
     0: Object 
     id: "4" 
     name: "Peter" 

Когда я alert(JSON.stringify(response)); я получаю {"results":[{"id":"4","name":"Peter"}]}, так что, безусловно, действует в формате JSON.

+2

'reponse.results [0] .name' – Sirko

+0

Почему такой вопрос может получить _upvote_? – moonwave99

ответ

3

В response нет собственности name. name есть в в первом элементе в results массиве, поэтому, чтобы получить имя вам нужно сделать

console.log(response.results[0].name) 
2

ответ является объект, который содержит массив в результатах, необходимо перебрать ressponse.results или если вы уверены, это хорошо иметь только один элемент, используйте response.results [0] .name

0

данные JSON содержит массив, так что вам нужно использовать индекс:

var data = {"results":[{"id":"4","name":"Peter"}]} 
 
document.write(data.results[0].name)

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