2016-11-17 33 views
0

Process.php如何從jQuery中的json_encode訪問數組元素?

<?php 
    $myArray= array("John", "Rita"); 
    echo json_encode($myArray); 
?> 

myJquery.js

$.post('Process.php', $(this).serialize(), function(data) { 
    alert(data); // output is: ["John", "Rita"] 
    alert(typeof(data)); // output is: string 
    alert(data.length);// output is: 19 
    alert(data[0]); // output is: [   //How can I get John here? 

    var person = ["John", "Rita"]; 
    alert(typeof(person)); // output is: object 
    alert(person.length);// output is: 2 
    alert(person[0]);// output is: John 
}).fail(function() { 
    alert("Some Problem Occured"); 
}); 

jQuery的陣列,我很容易訪問數組元素,如上所示。但對於由jQuery中的json_encode獲得的數組,我無法訪問數組elemts。請指導我在Jquery文件中需要什麼修正?

回答

1

您可以使用JSON.parse(data)$.parseJSON(data)從字符串中創建JSON對象。

或者你可以添加參數到$.post();來告訴它,響應將是一個json對象。

$.post('Process.php', $(this).serialize(), function(data){ 



}, 'json') // <--- here you can add json 
.fail(function() {alert("Some Problem Occured");}); 
0

您應該使用jQuery.parseJSON()

例子:

var obj = jQuery.parseJSON('{ "name": "John" }'); 
alert(obj.name === "John"); 
0

使用JSON解析這樣

$.post('Process.php', $(this).serialize(), function(data){ 
var data= JSON.parse(data); 
alert(data[0]); 
}