使用jquery的getJSON从服务器端获得数据
有时候我们需要从服务器端获取数据,来显示到页面
这时我们可以用jquery的getJSON来获得数据
这要求我们构造JSON格式的数据
json格式数据为:[{{'name':'老王'},{'age':'22'}},{{'name':'老李'},{'age':'32'}}]
前台代码:
jquery:
$.get("${pageContext.request.contextPath}/manage/orderManage_parseData.action?num="+Math.random()*1000+"&path="+encodeURI(filepath),null,function(data){
$.each(data,function(k,v){
$.each(v,function(kk,vv){
str+="<td height='20' bgcolor='red' class='STYLE6'><div align='center'><span class='STYLE19'>"+vv+"</span></div></td>";
});
});
其中data是返回的json数据,因为我们构造的是多维数组类型,所以可以通过迭代来获取其中的数据
后台服务器代码:
/**
* getJSON请求分析数据
*/
public void parseData(){
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("utf-8");
List<String[]> list=new ArrayList<String[]>();
try {
System.out.println(path);
path= URLDecoder.decode(path,"utf-8");
list = ImportExportDataUtil.parseData(path);
String[] format ={"Empo_Name","Empo_Code","User_ID","User_Pass"};
String jsonData = ImportExportDataUtil.getJSONData(list, format);
EmpoCode empoCode;
for(int i=0;i<list.size();i++){
String[] st=list.get(i);
for(int j=0;j<format.length;j++){
empoCode = new EmpoCode();
}
}
PrintWriter writer = response.getWriter();
writer.write(jsonData);
} catch (Exception e) {
e.printStackTrace();
}
}
其中list是List<String[]>格式的数据,format为所要构造的数据类型
上面红色字体所调用的代码如下,主要是构造json类型数据
/**
* 返回json格式的数据,如[{name:小强,age:22},{name:小李,age:23},{name:小王,age:21}]
* @param list 输入数据
* @param format 转换格式,如String[] format ={"name","age"};
* @return
*/
public static String getJSONData(List<String[]> list,String[] format){
StringBuffer jsonData = new StringBuffer();
jsonData.append("[");
for(int j=0;j<list.size();j++){
String[] st= list.get(j);
jsonData.append("{");
for(int i=0;i<format.length;i++){
if(i==format.length-1){
jsonData.append("\""+format[i]+"\":\""+st[i]+"\"");
}else{
jsonData.append("\""+format[i]+"\":\""+st[i]+"\",");
}
}
if(j==list.size()-1){
jsonData.append("}");
}else{
jsonData.append("},");
}
}
jsonData.append("]");
return jsonData.toString();
}