在jquery中解码JSON对象
我已经通过php使用以下代码将数据编码为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
$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);
}