2014-09-24 98 views
1

我是jQuery的新手。我试图通过AJAX从MySQL获取一些数据。我的PHP返回JSON。这是响应(不介意变量名称,可在捷克:)):从jQuery中的AJAX对象访问JSON

[{"nadpis":"Testovac\u00ed nadpis","text":"Testovac\u00ed \u010dl\u00e1nek o tom jak se zase prohr\u00e1lo","sestava":"Nikdo nehr\u00e1l"},{"nadpis":"Druhej nadpis","text":"Druhej text","sestava":"druh\u00e1 sestava"}] 

这里是我的jQuery函数:

$.ajax({ type: 'GET', 
       url: 'db.php', 
       datatype:'json', 
       success : function(data) 
       { console.log(data[1].text); 
        console.log(data); 
       } 
     }); 

的问题是,当我想访问数据[ 1] .text,它只返回undefined。在StackOverflow和其他论坛上,我经历了很多答案,但我仍然无法完成工作。

+0

如果这是你的回报'秒'数组,那么它只是'数据[1] ['text']' – Ohgodwhy 2014-09-24 20:25:41

+0

@Ohgodwhy与OP之间没有有效的区别。 – Pointy 2014-09-24 20:26:20

+0

是的,这是非常真实的。因此,进一步下注的问题是,“数据”的结构看起来像什么 – Ohgodwhy 2014-09-24 20:26:51

回答

2

更改datatypedataType。否则,jQuery不会识别该选项,也不会为您解析响应。

在你的情况下,data仍然是一个字符串,你可以用console.log(typeof data)验证。 返回"{","{".textundefined

看一看文档的正确选项名称:http://api.jquery.com/jquery.ajax/


或者,你可以parse the response yourself

(我张贴的答案,以防止其他误导的答案。这是社会的维基,因为我投票决定关闭的问题。)

+0

谢谢。)它现在有效。这样一个愚蠢的错误。我花了半天的时间来解决这个问题,我需要的只是大写字母T:D – andrle 2014-09-24 20:34:46