2013-10-04 38 views
0

我正在通过jquery在Zend框架中创建一个非常简单的聊天箱,我正在将内容加载到$('#outputArea')这本质上是一个div与$.load(),但我得到一个json对象,我需要提取只有一个消息value.What我与$.load()得到是这样的:jquery从json负载转换

[ 
    { 
     "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

这是你如何通过JSON数组迭代,并获得相应的键和它们的值。

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

} 

我认为你可以继续下去。