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类型的数据呢?
展开
 我来答
kongz007
2012-08-31 · 超过26用户采纳过TA的回答
知道答主
回答量:84
采纳率:0%
帮助的人:61万
展开全部
其实你是对的。但是因为你传的是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.相信你看到输出结果会豁然开朗的。
追问
你所谓的Model是一个数组?还是?给Model是怎么赋值的呢?
追答
Model是一个类啊
public class Model{
private int total;
private List root; //Object 放你需要的那个类
public void setTotal(int total){
this.total=total;
}
.....
}
这个类必须这样有这样2个属性,名字不能改。
gegecuicui
2012-08-31 · TA获得超过616个赞
知道小有建树答主
回答量:802
采纳率:0%
帮助的人:496万
展开全部
网上好多的json包 可以直接转换类的list 为json形式 后台就直接用out对象去set了 前台要看你的技术了 ext嘛
var ss=Ext.util.JSON.decode(resp.responseText);
ss点 什么什么的就可以用了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ueu2715
2012-08-31 · TA获得超过374个赞
知道小有建树答主
回答量:273
采纳率:100%
帮助的人:254万
展开全部
后台返回的是一个list,的数据转换成的json串.
var respText = Ext.util.JSON.decode(resp.responseText);

经过这句后respText 应该是一个数组.
if(respTest.length)
alert(respText[0].tbSrsg)//试试这样行不
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式