在jquery中解码JSON对象

在jquery中解码JSON对象,jquery,decode,json,Jquery,Decode,Json,我已经通过php使用以下代码将数据编码为json格式 <?php $response = array(); while ($row = mysql_fetch_array($result)) { $user["id"] = $row["id"]; $user["name"] = ucfirst($row["user_name"]);

我已经通过php使用以下代码将数据编码为json格式

  <?php

    $response = array();

    while ($row = mysql_fetch_array($result)) {

            $user["id"]                 = $row["id"];
            $user["name"]               = ucfirst($row["user_name"]);
            $user["date"]               = $row["date_of_treatment"];
            $user["age"]                = $row["age_of_user"];

            // push single user into final response array
            array_push($response, $user);

            $count = $count+1;
            $sum_of_age = $sum_of_age+$row["age_of_user"];

        }

    $response["average_age"]  = $sum_of_age / $count;
    $response["count"] = $count;

    echo json_encode($response);

?>
成功:函数(结果){
var users=result.users;
如果(users.length>0){
对于(var i=0;i
因为您的阵列不是单个阵列。它是一个关联数组(字典的一种)

您所做的是按索引分配数组元素以获取用户信息,但是
$response[“average_age”]
$response[“count”]
呢?你怎么能从中获得姓名、年龄、日期信息


您必须传递两个数组,一个用于users对象,如
$users
,另一个用于rest响应。

因此,首先,您需要将JSON转换为数组才能获得长度。因此,请尝试:

success: function(result){
    var resultArr = $.parseJSON(result);
    alert (resultArr.length); //3
    //proceed with for loop here
    ....
PHP

试试这个

success: function(data) {
    var output = "";
    if (data.length > 0) {
        $.each(data, function(index, item) {
            output += "<tr><td>" + (i + 1) + "</td><td>" + item.name + "</td><td>" + item.age + "</td><td>" + item.date + "</td><tr>";
            output += "<tr><td colspan='2' style='text-align:center'>" + item.average_age + "</td></tr>";
        });
    } else {
        output += "<tr><td colspan='4' style='text-align:center'>No Records Found..!</td></tr>";
    }
    $('#search-list tbody').html(output);
}
成功:函数(数据){
var输出=”;
如果(data.length>0){
$。每个(数据、功能(索引、项目){
输出+=“”+(i+1)+“”+item.name+“”+item.age+“”+item.date+“”;
输出+=“”+项目平均年龄+“”;
});
}否则{
输出+=“未找到任何记录…”;
}
$('#搜索列表tbody').html(输出);
}

请解释“不工作”。@LShetty控制台中的响应是否正常,但无法操作,这里的结果。长度显示未定义我的答案。请让我知道,以便我可以帮助您。显示错误“ReferenceError:users is not defined”@shajeer,我已编辑了您上一个问题的答案,请按答案所在的方式操作,您可以使用最近发布的答案(由我提供)作为解决方案。显示错误“SyntaxError:JSON.parse:意外字符”那么如何检索值呢?创建一个名为
$users=new array()的新数组然后将每个用户对象推入其中。最后,在循环完成后,分配$users数组,如
$response['users']=$users
,并在jquery中检查
result.users.length
它给出用户对象的长度,并从中获取信息,对于平均年龄,则获取结果。平均年龄,与计数相同。
success: function(result){  
         var users = result.users;

if(users.length > 0) { 

      for(var i=0; i < users.length ; i++) {
        obj = users[i];

        output = output + "<tr><td>"+(i+1)+"</td><td>"+obj.name+"</td><td>"+obj.age+"</td><td>"+obj.date+"</td><tr>";
      } 
      output = output+"<tr><td colspan='2' style='text-align:center'>"+result.average_age+"</td></tr>"
    } else {
      output = output + "<tr><td colspan='4' style='text-align:center'>No Records Found..!</td></tr>";
    }


       $("#search-list tbody").html(output);     
      }  
  });
success: function(result){
    var resultArr = $.parseJSON(result);
    alert (resultArr.length); //3
    //proceed with for loop here
    ....
$response["average_age"]  = $sum_of_age / $count;
$response["count"] = $count;
header('Content-type: application/json');
echo json_encode($response);
success: function(data) {
    var output = "";
    if (data.length > 0) {
        $.each(data, function(index, item) {
            output += "<tr><td>" + (i + 1) + "</td><td>" + item.name + "</td><td>" + item.age + "</td><td>" + item.date + "</td><tr>";
            output += "<tr><td colspan='2' style='text-align:center'>" + item.average_age + "</td></tr>";
        });
    } else {
        output += "<tr><td colspan='4' style='text-align:center'>No Records Found..!</td></tr>";
    }
    $('#search-list tbody').html(output);
}