日期:2014-05-17  浏览次数:20767 次

jsp通过json获取多个不同类型的值
本帖最后由 qudingchao 于 2013-06-08 01:35:02 编辑
这是ajax这里的情况


struts.xml的配置


action的情况,xml里的值都get set过了



那么,该怎样获得json里的那么些个不同类型的值,对象,属性,集合都有,这种情况该怎么弄,求大神指点,alert(data),弹出来[object Object],里面的te、tp都是对象来的,pageindex和pagecount是两个int属性,tcvlist1是个集合

------解决方案--------------------
这两个方法是后台封装成json的

private String getListJSON(List list) {
if (list == null) {
return "";
}
StringBuffer sb = new StringBuffer();
sb.append("[");
DictModel dm = null;
for (int i = 0; i < list.size(); i++) {
dm = (DictModel) list.get(i);
sb.append(getJSONdata(dm));
if (i != list.size() - 1) {
sb.append(",");
}
}
sb.append("]");
return sb.toString();
}

private String getJSONdata(DictModel dm) {
if (dm == null) {
return "";
}
StringBuffer sb = new StringBuffer();
sb.append("{");
sb.append("id:" + dm.getId() + ",");
sb.append("pid:" + dm.getPid() + ",");
sb.append("name:\"" + dm.getName() + "\",");
sb.append("ord:" + dm.getOrd());
sb.append("}");
return sb.toString();
}

这个是前台获取json数据的

$(document).ready(function(){
 $.ajax({
         url: "<%=path%>/modelAction.do",
         data: {
          pid:"-1",
          method:"query"
         },
         type: "GET",
         cache: false,
         async: false,
         success: function(data){
          var dataObj=eval("("+data+")");
          dataObj.sort(function(a,b){
                 return a["ord"]>b["ord"]?1:a["ord"]==b["ord"]?0:-1
             });
          $.each(dataObj,function(i,d){
$("<option value='"+d['id']+"'>" +d['name']+"</option>").appendTo("#bq");
          });