使用jquery解析JSON响应中的项目

时间:2017-02-13 17:29:31

标签: javascript php jquery json

我使用PHP和Ajax来解析一些JSON。 PHP正在创建这样的数组。

android:appTheme="@style/AppTheme"

我使用以下jquery代码

$myObj->pid = $_POST["parentid"];
$myObj->comp = $comp;
$myObj->colour = $statuscolour;
$myJSON = json_encode($myObj);
header('Content-Type: application/json');
echo $myJSON;

我可以看到第一个console.log的输出为

$.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);
    });

但是我无法提取单个变量,它会给出消息

Object {pid: "p1", comp: 20, colour: "red"}

如何提取变量?

3 个答案:

答案 0 :(得分:4)

你已经使它变得比它需要的更复杂。 msg已经是一个对象,然后您可以将其转换为字符串并返回到stringifyparseJSON的对象。然后,当它是一个对象时,你会尝试像数组一样使用它。

试试这个:

$.ajax({
    type: "POST",
    dataType: "json",
    url: "msstatup.php",
    data: data
}).done(function(msg) {
    var pid = msg.pid;
    console.log('id = ' + pid);
});

答案 1 :(得分:2)

您正在返回一个对象,而不是一个数组。

同样,对数据对象进行字符串化并将该字符串再次解析回对象是没有意义的

尝试

var pid = msg.pid;
console.log('id = ' + pid);

答案 2 :(得分:0)

首先,它无法想象为什么首先进行字符串化然后解析JSON响应是必要的。

其次,您正试图访问response[0],就像它是一个数组一样,它不是。你可以简单地使用

response.pid;

访问对象键。

由于您不需要进行字符串化然后解析响应,因此您可以直接访问msg,这一切都归结为

$.ajax({
    type: "POST",
    dataType: "json",
    url: "msstatup.php",
    data: data
}).done(function(msg) {
    console.log(msg.pid);
});