Javascript 如何处理json编码的php mysql数组
当我编码时,我试图从Javascript 如何处理json编码的php mysql数组,javascript,php,jquery,Javascript,Php,Jquery,当我编码时,我试图从MySQL表中获取返回的结果 echo json_encode($result); 我使用javascript获取它 $.ajax({ url: "helpers/data.php", type: "GET", dataType:"json", success: function(returnData){ document.write(returnData); } 这就是它的回报 [object Object]
MySQL
表中获取返回的结果
echo json_encode($result);
我使用javascript
获取它
$.ajax({
url: "helpers/data.php",
type: "GET",
dataType:"json",
success: function(returnData){
document.write(returnData);
}
这就是它的回报
[object Object],[object Object],[object Object],[object Object]
我可以通过这样做来修复它
echo json_encode(json_encode($result));
然后返回正确的数组
但是使用相同的
jquery
它将变量返回为未定义的它将返回对象数组,我相信如果您使用JSON库解决您的案例它将返回对象数组,我相信如果您使用JSON库解决您的案例尝试使用console.log(returnData)
在Chrome或Firefox(或任何像样的浏览器)中,查看开发人员工具/控制台输出,以结构化方式浏览您的数据
document.write()
无法从javascript对象提供可读的结构化输出。因此,它返回[object object]
作为真实存在的表示
在您的例子中,封装的json_encode()
调用基本上是这样做的:第二个调用(在第一个调用中)将返回一个有效的json数据字符串,然后第一个调用将把整个json对象包装到另一个对象中,例如:
// begin json
{
// begin encapsulated json
{
header: 'any data'
}
// end of encapsulated json
}
// end json
这不是你想要的。在第一级上对像这样返回的数据进行迭代只会得到一次迭代:在外部一次迭代中包装整个json对象。因此,.header
无法返回任何内容,因为它根本不在那里
无需将第二个json_encode()
包装在第一个中,因为无论提供的数据有多少级别,它都将递归地将提供的数据转换为json对象定义字符串(或者可能有一些限制,我不知道,可能是基于客户端运行的系统架构)
因此:
删除外部的json\u encode()
,只保留对该函数的一个调用(如开始时所做的那样)
使用console.log()
调试数据并查看在哪个级别返回的内容
相应地调整代码,以便最终能够通过正确的键访问值
除非您提供更多信息(例如JSON数据的示例),否则很难帮助您完成第3步。尝试在Chrome或Firefox(或任何像样的浏览器)中使用console.log(returnData)
,并查看开发人员工具/控制台输出,以结构化方式查看您的数据
document.write()
无法从javascript对象提供可读的结构化输出。因此,它返回[object object]
作为真实存在的表示
在您的例子中,封装的json_encode()
调用基本上是这样做的:第二个调用(在第一个调用中)将返回一个有效的json数据字符串,然后第一个调用将把整个json对象包装到另一个对象中,例如:
// begin json
{
// begin encapsulated json
{
header: 'any data'
}
// end of encapsulated json
}
// end json
这不是您想要的。在第一级上对像这样返回的数据进行迭代只会给您一次迭代:整个json对象包装在外部对象中。因此。header
无法返回任何内容,因为它根本不在那里
无需将第二个json_encode()
包装在第一个中,因为无论提供的数据有多少级别,它都将递归地将提供的数据转换为json对象定义字符串(或者可能有一些限制,我不知道,可能是基于客户端运行的系统架构)
因此:
删除外部的json\u encode()
,只保留对该函数的一个调用(如开始时所做的那样)
使用console.log()
调试数据并查看在哪个级别返回的内容
相应地调整代码,以便最终能够通过正确的键访问值
除非您提供更多信息(例如JSON数据示例),否则很难帮助您完成第3步。在php文件中
echo json_encode($result);
在jquery中,在$.ajax的成功回调中
returnData.forEach(function(elem) {
console.log(elem);
// do something with the individual objects
});
您可以直接使用
console.log(returnData);
在php文件中
echo json_encode($result);
在jquery中,在$.ajax的成功回调中
returnData.forEach(function(elem) {
console.log(elem);
// do something with the individual objects
});
您可以直接使用
console.log(returnData);
不要执行双重json\u encode
!在javascript中,您接收的是对象,而不是字符串,因此您不能简单地编写它。如果您需要html中对象的字符串表示,请使用json.stringify(数据)
。但您可能需要以另一种方式处理对象。不要执行双重json\u encode
!在javascript中,您接收的是对象,而不是字符串,因此您不能简单地编写它。如果您需要html中对象的字符串表示,请使用json.stringify(数据)
。但您可能需要以另一种方式处理对象。处理JSON数据
这是一个JSON示例。在前面的示例中,键将是1
、2
和3
,而val
将是“奇异的感觉”
、“小珠子的小眼睛”
或“小鸟在我家门口的台阶上俯仰”
。现在您知道如何访问数据了
因为我不知道你的JSON结构,所以我无法进一步帮助你。如果你用一些JSON代码更新你的问题以及你想做什么,我会更具体。处理JSON数据
这是一个JSON示例。在前面的示例中,键将是1
、2
和3
,而val
将是“奇异的感觉”
、“小珠子的小眼睛”
或“小鸟在我家门口的台阶上俯仰”
。现在您知道如何访问数据了
因为我不知道你的JSON结构,我不能帮你一个忙