jsp通过json获取多个不同类型的值
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();
}
$(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");
});
}
});
});
[解决办法]
首先你要了解json的格式{"变量名称1":"变量值","变量名称2":"变量值"},运用struts2的result组件返回json会自动帮你action中的属性变成json返回的,如果不是简单类型,就需要在属性get方法的前面加上
@JSON(serialize=false),json对象的值默认是字符串的,例如:
@JSON(serialize=false)public List<String> getXXX(){
//省略
}