JSON解码数组

时间:2012-03-15 17:54:05

标签: php jquery ajax json

我有这个JSON代码:

{
    "phrases": [
        {
            "phrases": [
                {
                    "id": "33",
                    "text": "sasdsad",
                    "date": "2012-03-14 20:28:45",
                    "views": "0",
                    "ip": "64.191.90.5",
                    "reported": "0",
                    "strange": "0",
                    "lang": "en"
                },
                {
                    "id": "32",
                    "text": "que ondaa\r\n",
                    "date": "2012-03-14 20:27:45",
                    "views": "0",
                    "ip": "64.191.90.5",
                    "reported": "0",
                    "strange": "0",
                    "lang": "en"
                },
                {
                    "id": "31",
                    "text": "dsadssadsad",
                    "date": "2012-03-14 20:27:35",
                    "views": "0",
                    "ip": "64.191.90.5",
                    "reported": "0",
                    "strange": "0",
                    "lang": "en"
                }
            ],
            "details": {
                "success": "true",
                "phrase_id": "",
                "phrase_text": "",
                "phrase_date": ""
            }
        }

我真的不知道该怎么做。我得到一些短语,如MySQL,并将它们推送到一个数组。该数组为json_encoded()并打印出来。

$sth = $sql;
$rows = array();
while($r = mysql_fetch_assoc($sth)) {
    $rows[] = $r;
}
$sth = $sql;
$data = array(
    "success" => "true", 
    "phrase_id"      => "",
    "phrase_text"      => "",
    "phrase_date"      => "",
);
    print json_encode($rows).json_encode($data);

并且使用jQuery我试图解析它,但我不能。这是主要问题。

function getPhrases(order,limit,last){
    var req_url = ...;
    $.getJSON(req_url, function(data) {
        $.each(data.phrases, function(i, data) {
            appendPhrase(data.text);
            lastid = data.id;
        });
        $.each(data.details, function(i, data) {
            $("#phrases-count").html(data.totalcount);
        });
    });
}
PS:我用“回声”做了这个,但遇到了一些问题。

{
    "phrases": [
        {
            "id": "33",
            "text": "sasdsad",
            "date": "2012-03-14 20:28:45",
            "views": "0",
            "ip": "64.191.90.5",
            "lang": "en"
        },
        {
            "id": "32",
            "text": "que ondaa<br />",
            "date": "2012-03-14 20:27:45",
            "views": "0",
            "ip": "64.191.90.5",
            "lang": "en"
        },
        {
            "id": "31",
            "text": "dsadssadsad",
            "date": "2012-03-14 20:27:35",
            "views": "0",
            "ip": "64.191.90.5",
            "lang": "en"
        }
    ],
    "details": [
        {
            "totalcount": "3",
            "logged_in": "false"
        }
    ]
}

1 个答案:

答案 0 :(得分:2)

您不能简单地组合这些JSON数组:

print json_encode($rows).json_encode($data);

试试这个(尝试2):

print json_encode( array('phrases' => $rows, 'details' => $data) );