如何将对象转换为JSON

时间:2011-09-20 00:22:58

标签: php javascript jquery json

我的jquery看起来像这样

var formContent ="action=view&msgid="+id;
$.getJSON("myserv.php",formContent, function(json){
    $.each( json, function(k, v){`
       alert( "Key: " + k + ", Value: " + v );`
    });
});

在我的php文件中,我有一个i json编码的数组

while($message->fetch()) {
    $arr[$i]["read"]=$message->test;
    $arr[$i]["messageid"]=$message2->test2;
    $arr[$i]["subject"]=$message2->test3;
    $arr[$i]["text"]=$message2->test4;
}

$str=json_encode($arr);

return $str;

警报返回Key:0 Value: [Object Object]

知道我怎么能让它返回正确的结果?如何在div或span中很好地显示结果?

1 个答案:

答案 0 :(得分:1)

您将它全部放在单个单元格数组中。然后在你的回调中,在jQuery中,你试图遍历数组单元格。我假设你想保留$ arr一个数组(猜测你可以有多个'read','subject'等)所以你应该将你的js更改为:

var formContent ="action=view&msgid="+id;
$.getJSON("myserv.php",formContent, function(json){
    $.each(json, function(i){
        $.each(json[i], function(k, v) {
            alert( "Key: " + k + ", Value: " + v ); });
        });
    });
});

或者,如果您不想要单个单元格数组,并且只返回一个'read','subject等,那么将PHP更改为:

if($message->fetch()) {
    $arr["read"]=$message->test;
    $arr["messageid"]=$message2->test2;
    $arr["subject"]=$message2->test3;
    $arr["text"]=$message2->test4;
    $str=json_encode($arr);
}
else {
    $str=json_encode(Array('error' => 'No message'));
}


return $str;
相关问题