[英]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.