前台通过jQuery怎样获得后台传过来的json呢?我是将list封装到json的?我现在没办法读取数据!
解决方案 »
- 如何在MyEclipse中将JSP的Encoding设成GBK!
- org.springframework.beans.factory.BeanCreationException:
- <s:action executeResult="true"/>当把返回值设置为TRUE进入死循环
- eclipse可以直接建立weblogic工程吗?
- eWebEditor中文乱码问题
- 哪位大师知道weblogic8.1+oracle9i环境配置了?
- jsp 调用ocx控件问题
- JDBC访问Oracle的问题???????????
- 在线等!怎么在jsp页面里取得客户的ip地址?
- 怎样用java把数据库里读出来的数据按自己定义的格式写入一个word文件
- struts2.xml的action中的result报错
- 使用自定义标签老是出错求解!
然后在页面要使用$.getJSON(url,function(date){
$.each(date,function(index,value){
alert(value);//这样就可以得到了
}
})
$.ajax({
url :'getSisName.jsp', //后台处理程序
type:'post', //数据发送方式
dataType:'json', //接受数据格式
success:callbackFun //回传函数(这里是函数名)
})
function callbackFun(data){
alert(data)//data就是后台传到前台的数据
$.each(data.sisName,function(i, item){ });
}
jquery同步/异步调用,回调函数拿结果
这是我的后台代码:
int b_id =Integer.parseInt(request.getParameter("b_id"));
try {
List<Shanghu> list=new Fun().fun6(b_id);
for(int i=0;i<list.size();i++)
System.out.println(list.get(i).getSh_id()+list.get(i).getSh_name());
JSONArray shanghu=new JSONArray(list);
PrintWriter out=response.getWriter();
out.print(shanghu.toString());
out.flush();
out.close();
} catch (BusinessException e) {
e.printStackTrace();
}这是我的前台代码:js部分
function fun2(b_id){
$.ajaxSetup({cache:false});
$.getJSON(
"selectsh.do",
{"b_id":b_id},
function(data){
$("#shanghu").empty();
$("#shanghu").append("<option value=\"-1\">请选择</option>");
for(var i=0;i<data.length;i++){
alert(data[i].sh_id);
$("#shanghu").append("<option value=\""+data[i].sh_id+"\">"+data[i].sh_name+"</option>");
}
},
"json"
);
}
我可以得到从后台得到传过来的对象,但是显示的时候只是显示undefined,我郁闷了!
服务器端:
Gson gson=new Gson();
String json=gson.toJson(list);
out.print(json);//将list转换的string传输出去
客户端:
String result=从客户端接收过来的字符串;
Type type=new TypeToken<List<E>>(){}.getType();
Gson gson=new Gson();
List<E> list=gson.fromJson(result,type);
这样你就可以操作了。
for循环改成这样
for (var key in data) {
data[key].sh_id和data[key ].sh_name
}