我对如何处理JSON返回值感到困惑。 我使用此代码来检索它:
$.post('php/testphp.php', 'clickBtnValue=' + $(this).val(), function(response) {});
我回复了这个回复:
[{
"firstname": "Zach",
"0": "Zach",
"lastname": "Alber",
"1": "Alber",
"dojo": "Okinawa",
"2": "Okinawa"
}]
答案 0 :(得分:0)
您需要先解析JSON,然后才能将其作为对象访问...
$.post('php/testphp.php', 'clickBtnValue=' + $(this).val(), function(response) {
var parsed = JSON.parse(response);
alert(parsed[0].firstname);
});
为什么需要这个?这是因为JSON不是JavaScript。这两个术语不是同义词。
JSON是一种文本数据交换格式。它需要被解析为任何语言的数据结构。在您的情况下,该语言是JavaScript,因此您需要将其解析为JavaScript数据。
答案 1 :(得分:0)
这样做的方法就是按照以下方式拨打电话:
$.post('php/testphp.php', 'clickBtnValue=' + $(this).val(), (function(response) {
console.log(response);
this.object_var = response.data;
}).bind(this));
打印响应对象后,您将看到其中的内容。在许多情况下,您的响应对象将存储在response.data
。
此外,如果要将值分配给post
请求对象之外的某个变量,您可以.bind(this)
该对象,或者只需在其外部定义变量,如下所示:
var my_var;
$.post('php/testphp.php', 'clickBtnValue=' + $(this).val(), function(response) {
console.log(response);
my_var = response.data;
});
答案 2 :(得分:0)
$(function() {
var jsonData = [{
"firstname": "Zach",
"0": "Zach",
"lastname": "Alber",
"1": "Alber",
"dojo": "Okinawa",
"2": "Okinawa"
}];
for(var i=0; i <= jsonData.length; i++)
{
var fname = jsonData[i].firstname;
var lname = jsonData[i].lastname;
var dojo = jsonData[i].dojo;
var table = '<table border="1 px"><tr><td>First Name</td><td>Last Name</td><td>Dojo</td></tr><tr><td>'+fname+'</td><td>'+lname+'</td><td>'+dojo+'</td></tr>' ;
document.write(table);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
答案 3 :(得分:-1)
首先使用JSON.parse()进行解析,然后像对象一样访问它们。例如:
var obj = JSON.parse(your_data);
然后
OBJ [0] .userID