刚用json,不太熟悉,现在通过查询得到一堆数据,想把它显示为列表的形式,不知道如何去做。请帮忙解决一下,谢谢!
点查询会到后台
JAVA:
      List<?> workOrderInfoList = workOrderInfoManagerDB.getWorkOrderInfoByConditions(db, request);
response.setContentType("text/html;charset=utf-8");  
PrintWriter out = response.getWriter();  
if (workOrderInfoList != null && !workOrderInfoList.isEmpty()) {  
//若list不为空,则将其转换成JSON对象,并存入jsonArray中  
JSONArray jsonArray = JSONArray.fromObject(workOrderInfoList);   
//下面就是把存有查询结果的JSON对象返给页面  
out.println(jsonArray);  
JS:
$.getJSON(
"../workOrderInfoManager/workOrderInfo.do?method=queryWorkOrderInfoByConditions",
jsonStr,
function(json){
//循环取json中的数据,并呈现在列表中
        $.each(json,function(i){
         $("#aa").html(json[i].vcworkordername);
                 $("#bb").html(json[i].vcworkorderid);
         })
})
其中JSP页面列为是aa和bb,行为test
这样取的话只是把循环的最后一条显示出来了,问一下如何才能把所有的都显示出来

解决方案 »

  1.   

    var i = 0;
    while (i < jsonArray.size) {
        $("#aa").html(jsonArray[i].vcworkordername); 
        $("#bb").html(jsonArray[i].vcworkorderid);
        i++;
    }
      

  2.   

    这样可以吗?试一下,不可以
    我用each感觉应该没有问题。
    感觉是取列取的不正确。
      

  3.   

    问题已经解决了,谢谢楼上的回复
    我解决的方法是这样的,希望能看到更好的方法
    $.getJSON(
    "../workOrderInfoManager/workOrderInfo.do?method=queryWorkOrderInfoByConditions",//产生JSON数据的服务端页面
    jsonStr,
    function(json){
       $("#list").empty();
       var listHtml='';
    //循环取json中的数据,并呈现在列表中
    listHtml += '<table width="400" border="1">'
        $.each(json,function(i){
          listHtml += '<tr>';
        listHtml += '<td>'+json[i].vcworkorderid+'</td>';
                listHtml += '<td>'+json[i].vcworkordername+'</td>';
                 listHtml += '</tr>';
        })
               listHtml += '</table>';
        $("#list").append(listHtml);
    })
      

  4.   

    在客户端也可以用jquery 处理
    var resultstr='';
    var json=eval('('+msg+')');
    $.each(json, function(i, item){resultstr+='<tr><td>'+i+'</td><td>'+item.name+'</td><td>'+item.nick+'</td></tr>'});