[英]Using jquery to parse items from a JSON response
我正在使用PHP和Ajax解析一些JSON。 PHP正在创建这样的数组。
$myObj->pid = $_POST["parentid"];
$myObj->comp = $comp;
$myObj->colour = $statuscolour;
$myJSON = json_encode($myObj);
header('Content-Type: application/json');
echo $myJSON;
我用下面的jQuery代码
$.ajax({
type: "POST",
dataType: "json",
url: "msstatup.php",
data: data
}).done(function(msg) {
var response = jQuery.parseJSON(JSON.stringify(msg));
console.log(response);
pid = response[0].pid;
console.log('id = ' + pid);
});
我可以看到第一个console.log的输出为
Object {pid: "p1", comp: 20, colour: "red"}
但是我无法提取单个变量,它给出了消息
Uncaught TypeError: Cannot read property 'pid'
如何提取变量?
您已经使它变得比所需复杂。 msg
已经是一个对象,然后您可以将其转换为字符串,然后使用stringify
和parseJSON
返回对象。 然后,当它是一个对象时,尝试像数组一样使用它。
尝试这个:
$.ajax({
type: "POST",
dataType: "json",
url: "msstatup.php",
data: data
}).done(function(msg) {
var pid = msg.pid;
console.log('id = ' + pid);
});
您正在返回一个对象,而不是数组。
同样,对数据对象进行字符串化并再次将该字符串解析回对象也没有意义。
尝试
var pid = msg.pid;
console.log('id = ' + pid);
首先,无法想象为什么先进行字符串化然后解析JSON响应是必要的。
其次,您尝试访问response[0]
就像它是一个数组一样,不是。 您可以简单地使用
response.pid;
访问对象密钥。
由于您无需先进行字符串分类再解析响应,因此您可以直接访问msg
,因此一切都归结为
$.ajax({
type: "POST",
dataType: "json",
url: "msstatup.php",
data: data
}).done(function(msg) {
console.log(msg.pid);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.