ajax传入字符串过长 报错,servlet+ajax+json字符串后台传入,前端解析并把数据循环填入表格实例...

写在前面:

1、源代码来源于博客http://blog.sina.com.cn/u/2904067371 ,在此基础上对于前端代码稍作更改,把传过来的数据解析并传入表格

2、json解析,用eval()

3、写入表格 table.rows[i].cells[j].innerHTML

4、导入java中json应用的jar包(如果没有导入jar包或者包不全就不会有import net.sf.json.JSONArray;import net.sf.json.JSONObject;

JSONArray、JSONObject会报错。

)

5、测试字符串如下:{"person":[{"id":3,"name":"ss","pwd":"1234"},{"id":23,"name":"ws","pwd":"124"}]}

json jar包百度云:

工程截图:

880e42b8bc7efbbbc83ece726ada7493.png

效果截图:

bc76c9ee60daea7c69b2f52581384d72.png

39414fd557b9c7a94a61187be96e5d9f.png

代码:

Person.java

package com.orilore.gb;public classPerson {public intgetId() {returnid;

}public void setId(intid) {this.id =id;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}publicString getPwd() {returnpwd;

}public voidsetPwd(String pwd) {this.pwd =pwd;

}private intid;privateString name;privateString pwd;

}

servlet  json.java

public voiddoGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request, response);

}public voiddoPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/xml;character=utf-8");

response.setHeader("Cache-Control", "no-cache");try{

Person p=newPerson();

p.setName("ss");

p.setId(3);

p.setPwd("1234");

Person p1=newPerson();

p1.setName("ws");

p1.setId(23);

p1.setPwd("124");

List list =new ArrayList();

list.add(p);

list.add(p1);try{

JSONArray json=JSONArray.fromObject(list);

JSONObject jb=newJSONObject();

jb.put("person", json);

response.getWriter().write(jb.toString());

}catch(IOException e){

e.printStackTrace();

}

}catch(Exception e){

e.printStackTrace();

}

}

前端页面代码

111
111

xmlhttp=newXMLHttpRequest();

}else{

xmlhttp=new ActiveObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange=function(){if (xmlhttp.readyState==4 && xmlhttp.status==200){var x=xmlhttp.responseText

div.innerHTML=x;var sd=eval("(" + x + ")");var arr=newArray();var i=0;for(var a in sd.person){//获取有几个person

var count=0;//计算person属性值的个数

i++;for(var item insd.person[a])

{ count++;var p=sd.person[a][item];//得到属性值的内容

table.rows[i-1].cells[count-1].innerHTML=p;//把内容填向table表格

}

}

}

}var url ="json";

xmlhttp.open("POST",url,true);

xmlhttp.send();

}

原文:http://www.cnblogs.com/a67cm/p/4550302.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值