ExtJS之Ext.Ajax.request方法如何返回值的处理
functiongetStateCount(isId){varurl="${Context}/applice/kpi/targetBookList.action?Id="...
function getStateCount(isId){
var url = "${Context}/applice/kpi/targetBookList.action?Id="+isId;
Ext.Ajax.request({
url: url,
async : true,
success: function(resp){
var respText = Ext.util.JSON.decode(resp.responseText);
弹出respText时候是[object Object],[object Object]
alert(respText.tbSrsg);//这个直接就是undefined
本身的List我是在后台过的,代码如下:
if (plist.size()>0) {
Struts2Util strus2util = new Struts2Util();
HttpServletResponse Response = strus2util.getResponse();
//ServletOutputStream os = Response.getOutputStream();
PrintWriter pw = Response.getWriter();
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setJsonPropertyFilter(new net.sf.json.util.PropertyFilter(){
public boolean apply(Object source, String name, Object value){
if(name.equals("perTargetYear")){
return true;
}else{
return false;
}
}});
net.sf.json.JSONArray ja=net.sf.json.JSONArray.fromObject(plist,jsonConfig);
//os.print(ja.toString());//需要将List转换成json
//os.close();
pw.print(ja.toString());
pw.close();
return null;
求高手指点 我该怎么出来这个数据?才可以让他把我List里面的对象变出来成为一个JSON类型的数据呢? 展开
var url = "${Context}/applice/kpi/targetBookList.action?Id="+isId;
Ext.Ajax.request({
url: url,
async : true,
success: function(resp){
var respText = Ext.util.JSON.decode(resp.responseText);
弹出respText时候是[object Object],[object Object]
alert(respText.tbSrsg);//这个直接就是undefined
本身的List我是在后台过的,代码如下:
if (plist.size()>0) {
Struts2Util strus2util = new Struts2Util();
HttpServletResponse Response = strus2util.getResponse();
//ServletOutputStream os = Response.getOutputStream();
PrintWriter pw = Response.getWriter();
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setJsonPropertyFilter(new net.sf.json.util.PropertyFilter(){
public boolean apply(Object source, String name, Object value){
if(name.equals("perTargetYear")){
return true;
}else{
return false;
}
}});
net.sf.json.JSONArray ja=net.sf.json.JSONArray.fromObject(plist,jsonConfig);
//os.print(ja.toString());//需要将List转换成json
//os.close();
pw.print(ja.toString());
pw.close();
return null;
求高手指点 我该怎么出来这个数据?才可以让他把我List里面的对象变出来成为一个JSON类型的数据呢? 展开
3个回答
展开全部
其实你是对的。但是因为你传的是list所以才错。你应该传个Model对象。Model有有2个属性total、list,分别代表list.size()和list。让后再你Model Json化再传到后台。参考下面代码
JSONObject array = JSONObject.fromObjec(model);
HttpServletResponse resp = ServletActionContext.getResponse();
PrintWriter out = null;
System.out.println("++++"+array.toString());
try {
out = resp.getWriter();
out.print(array);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
这时你就可以用
var respText = Ext.util.JSON.decode(resp.responseText);然后你可以用alert输出respText.total和respText.list[0].tbSrsg.相信你看到输出结果会豁然开朗的。
JSONObject array = JSONObject.fromObjec(model);
HttpServletResponse resp = ServletActionContext.getResponse();
PrintWriter out = null;
System.out.println("++++"+array.toString());
try {
out = resp.getWriter();
out.print(array);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
这时你就可以用
var respText = Ext.util.JSON.decode(resp.responseText);然后你可以用alert输出respText.total和respText.list[0].tbSrsg.相信你看到输出结果会豁然开朗的。
追问
你所谓的Model是一个数组?还是?给Model是怎么赋值的呢?
追答
Model是一个类啊
public class Model{
private int total;
private List root; //Object 放你需要的那个类
public void setTotal(int total){
this.total=total;
}
.....
}
这个类必须这样有这样2个属性,名字不能改。
展开全部
网上好多的json包 可以直接转换类的list 为json形式 后台就直接用out对象去set了 前台要看你的技术了 ext嘛
var ss=Ext.util.JSON.decode(resp.responseText);
ss点 什么什么的就可以用了
var ss=Ext.util.JSON.decode(resp.responseText);
ss点 什么什么的就可以用了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
后台返回的是一个list,的数据转换成的json串.
var respText = Ext.util.JSON.decode(resp.responseText);
经过这句后respText 应该是一个数组.
if(respTest.length)
alert(respText[0].tbSrsg)//试试这样行不
var respText = Ext.util.JSON.decode(resp.responseText);
经过这句后respText 应该是一个数组.
if(respTest.length)
alert(respText[0].tbSrsg)//试试这样行不
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询