jquery从json转换

时间:2013-10-04 12:19:35

标签: jquery ajax json zend-framework

我正在通过Jquery在Zend Framework中创建一个非常简单的聊天框,我将内容加载到$('#outputArea'),它本质上是一个带有$.load()的div,但是我得到了一个json对象,我需要只提取一个消息值。我使用$.load()得到的是:

[
    {
        "id": "1",
        "messages": "message 1"
    },
    {
        "id": "2",
        "messages": "message 2"
    },
    {
        "id": "59",
        "messages": "d"
    },
    {
        "id": "60",
        "messages": "w"
    },
    {
        "id": "61",
        "messages": "fff"
    },
    {
        "id": "62",
        "messages": "d"
    },
    {
        "id": "63",
        "messages": "df"
    },
    {
        "id": "64",
        "messages": "dfs"
    },
    {
        "id": "65",
        "messages": "dw"
    },
    {
        "id": "66",
        "messages": "dw11"
    },
    {
        "id": "67",
        "messages": "dw112"
    },
    {
        "id": "68",
        "messages": "111"
    },
    {
        "id": "69",
        "messages": "111"
    },
    {
        "id": "70",
        "messages": "dd"
    },
    {
        "id": "71",
        "messages": "sddd"
    },
    {
        "id": "72",
        "messages": "\n\n"
    },
    {
        "id": "73",
        "messages": "ss"
    }
]

我该怎么做?谢谢。 这是jquery代码:

$(document).ready(function(){
$('#outputArea').load('/index/index');
$('#chat').submit(function(){
    var message = $('#message').val();
    if(message === ''){
        $('#error-message').css('display','inline');
        return false;
    }
    $.post('/index/index',{'message':message},function(data){
            $('#error-message').css('display','none');
            var n = data.length;
            $('#outputArea').append('<div>' + data[n-1].messages + '</div>' + '<br />');    
            console.log(data);
        },'json');

     return false;
  });                  
});

和php索引控制器部分负责解析JSON:

if($this->_request->isXmlHttpRequest()){
        $this->_helper->viewRenderer->setNoRender();
        $this->_helper->getHelper('layout')->disableLayout();
        $model = new Application_Model_DbTable_Chat();
        $data = $this->_request->getParam('message');
        //$data = json_decode($data);
        $model->createPost($data);
        $json = $model->fetchAll();
        header('Content-type:application/json');
        //print_r($json);
        foreach ($json as $key => $value) {

        }
        echo $this->_helper->json->sendJson($json);
    }

1 个答案:

答案 0 :(得分:1)

这是您可以迭代JSON数组并获取相应键及其值的方法。

for(var i in data)
{
  var message = data[i].message;

}

我认为你可以继续前进。