访问返回的JSON元素

时间:2013-11-14 16:46:56

标签: javascript php jquery json

我正在尝试访问我使用jQuery从.post方法返回的JSON的各个元素。当我将数据发送到create.php时,它所做的就是对数据进行json_encode并将其放在json对象中。这是我的代码:

$.post("pages/create.php", {user : "user1", password : "pass2"}, function(data) {
    var newArray = new Array();
    newArray = {"user":"user2","password":"pass2"};
    console.log(newArray.user);
    console.log(data);
    console.log(data.user);

问题是前两个控制台日志的功能与我期望的完全相同。第一个给了我:

  

“用户2”

第二个给了我:

  

“user”:“user1”,“password”:“pass2”

但是第三个是未定义的,即使我知道数据JSON对象中有东西。我的语法错了吗?我只是想尝试访问该JSON的特定元素。

2 个答案:

答案 0 :(得分:2)

json作为第四个参数添加到$.post()函数

$.post("pages/create.php", {user : "user1", password : "pass2"}, function( data ) {
    console.log( data.user);
}, "json");

这将发布到create.php页面并获取以json格式返回的内容。

并确保create.php将jsonencoded数据返回为:

<?php echo json_encode(array("user1"=>"Kishor","pass1"=>"mypass")); ?>

还将JSON的正确内容类型HTTP标头设置为:

header('Content-Type: application/json');

查看jQuery.post()What is the correct JSON content type?

答案 1 :(得分:0)

给出的所有答案似乎都是正确的,我只是感觉你的JSON响应可能缺少“{”和“}”..但只是返回对象的属性......