如何将list类型数据转换成json串,并且传入

 我来答
huanglenzhi
2018-09-03 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517195
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
1:在服务器端将object类型的数据转换成json格式需要一些jar包
为了方便说清楚,以示例为主来讲

private void query(HttpServletRequest request, HttpServletResponse response) throws IOException{

List<Person> persons = s.findAllPerson();; //把一个list对象转化成string字符串
String jsonString = JSONArray.fromObject(persons).toString(); //返回给浏览器
response.getWriter().println(jsonString);

}

客户端浏览器在接收到服务器端返回来的json数据之后,需要进行解析,解析成json对象,然后利用jquery技术将对象中的字段加入到表格中
这个功能其实就是查询功能
//用于页面初始化的时候加载数据使用//并且将加载到的数据放入到表格中function queryPerson(){

//查询数据
$.post('../../PersonServlet1',null, function(data){
//eval函数可以把从服务器端返回到客户端的字符串转换成json对象
var jsonOBJ = eval("("+data+")"); //data是服务器端将list类型的对象转换成json格式后返回来的,也就是json格式的字符串
//所以我们在浏览器端只需要在将json格式的字符串在转换成我们需要的格式对象就可以了
for(var i=0;i<jsonOBJ.length;i++)
{ //得到 所需要的数据,也就是将json对象中的数据提取出来
var name = jsonOBJ[i].name; var description = jsonOBJ[i].description; var pid = jsonOBJ[i].pid; var $checkbox = $("<input/>").attr("type","checkbox"); var $checkboxTD = $("<td/>").append($checkbox); $checkboxTD.attr("id",pid); var $nameTD = $("<td/>").text(name); var $descriptionTD = $("<td/>").text(description); var $updateA = $("<a/>").text("修改"); $updateA.css("cursor","pointer"); var $deleteA = $("<a/>").text("删除"); $deleteA.css("cursor","pointer"); var $updateTD = $("<td/>").append($updateA); var $deleteTD = $("<td/>").append($deleteA); var $tr = $("<tr/>").append( $checkboxTD).append($nameTD).append($descriptionTD).append($updateTD).append($deleteTD);
$("#usertable").append($tr);

}
}
);
};

删除功能
$deleteA.click(function(){
if(window.confirm("确定要删除吗"))
{//$(this).parent().parent().remove();
//此处并没有做到从数据库里边删除,刷新之后数据任然存在
//所以这里要做的就是从数据库里边删除数据 //
//要根据id来删除数据
var pid = $(this).parent().siblings("td:eq(0)").attr("id");

$.post('../../PersonServlet',{method:'deleteById',pid:pid}, function(data){
$deleteA.parent().parent().remove();
});
}
});

添加功能
$("#addUser").click(function(){
var pid = $("#pid").val(); var name = $("#name").val(); var description = $("#description").val(); if(pid==""||name==""||description==""){
alert("请输入正确的数据");
}else{

$.post('../../PersonServlet',{method:'addUser',pid:pid,name:name,description:description}, function(data){
alert("添加成功");
}
);
}

});

复选框的全选功能
$("#allCheckbox").click(function(){
if($(this).attr("checked"))
{
$(":checkbox").attr("checked",true);
} else
{
$(":checkbox").attr("checked",false);
}

});

跟新功能
$updateA.click(function(){

var pid = $(this).parent().siblings("td:eq(0)").attr("id"); var name = $(this).parent().siblings("td:eq(1)").text(); var description = $(this).parent().siblings("td:eq(2)").text();

$("#id_update").val(pid);
$("#name_update").val(name);
$("#description_update").val(description);

});

$("#updateUser").click(function(){
var pid = $("#id_update").val(); var name = $("#name_update").val(); var description = $("#description_update").val();

$.post('../../PersonServlet',{
method:'update',
pid:pid,
name:name,
description:description},function(data)
{

alert("修改成功");

}
);
});

删除功能
//删除功能,就是将数据删除
$deleteA.click(function(){
if(window.confirm("确定要删除吗"))
{//$(this).parent().parent().remove();
//此处并没有做到从数据库里边删除,刷新之后数据任然存在
//所以这里要做的就是从数据库里边删除数据 //
//要根据id来删除数据
var pid = $(this).parent().siblings("td:eq(0)").attr("id");

$.post('../../PersonServlet',{method:'deleteById',pid:pid}, function(data){
$deleteA.parent().parent().remove();
alert("删除成功");
});
}
});
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式