Gson处理前端传递过来的Json对象数组

本文介绍了如何使用Gson处理前端通过Ajax传递的Json对象数组。首先,需要导入Gson库,利用Gson的核心类如Gson、JsonParser等。接着,通过JQuery的ajax发送json数据到后台Servlet。后台接收到数据后,使用Gson进行解析并将Json对象存入List集合。此外,还提供了一个简单的示例说明整个过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何从前端传递Json对象数组到后台

场景:给后台传递对象数组,后台通过Gson解析,并把对象存放到List集合里面。

  1. 在使用Gson前导入Gson的jar包gson-1.4.jar,在jar包里面有其核心类:Gson,JsonParser,JsonObject,JsonArray,这些核心类在后面都有使用。
  2. 使用JQuery的ajax传递Json数据到后台
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'GsonDemo.jsp' starting page</title>
    <script src="js/jquery-3.1.1.min.js"></script><!--引用jquery文件-->
    <script  type="text/javascript" language="javascript">
    function saveData(){
        //创建一个student对象数组
        var student=[{"name":"tony","age":21},{"name":"chenzitong","age":22}];
        $.ajax({
            type:"POST",
            url:"填写后台servlet的路径",
            data:{"datalist":JSON.stringify(student)},//对象数组要通过JSON.stringify转化为json字符串格式。
            dataType:"json", //数据的格式为json
            success:function(data){
                alert("success");},
            error:function(){
                alert("insert error");}
        });
    }
    </script>
  </head>
    <body>
    <!--通过按钮提交ajax请求-->
    <button id="demo" onclick="saveData()">Click</button><br>
  </body>
</html>

3.后台servlet接收前端传递过来的json格式的对象数组

public class GsonServlet extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        String std = request.getParameter("datalist");//获取json格式的对象数组
        Gson gson = new Gson();//创建一个Gson对象

        List<Student> stus = new ArrayList<Student>();

        JsonParser parser = new JsonParser();//创建一个JsonParser

        //通过JsonParser对象可以把json格式的字符串解析成一个JsonElement对象,然后通过JsonElement对象生成JsonArray序列
        JsonArray jarray = parser.parse(std).getAsJsonArray();

        //通过JsonArray把对象从中提取到List集合中来
        for (JsonElement jsonElement : jarray) {
            stus.add(gson.fromJson(jsonElement, Student.class));
        }
        System.out.println(stus.toString());
    }
    }
}
//运行的结果:[Student [name=tony, age=21], Student [name=chenzitong, age=22]]

通过简单的小例子展现后台如何解决前端传递过来的对象数组并把对象数组放到集合中去。关于更多的Gson教程可以参考:Gson使用指南-简书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值