Gson、Jackson_Java对象转为json对象
在对客户端进行响应的时候,要把一个JavaBean对象发送给浏览器,最好是转为json对象。
json对象:
{
“key”:value,
"key":value
}
一、gson组件
(一)、导入jar包
(二)、使用步骤
例子:
把一个Java对象转换成json对象,并且以json对象的格式响应给客户端
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { User user = new User(1,"lurenjia",18); //设置响应格式 resp.setContentType("application/json;charset=utf-8"); //获取到输出流 PrintWriter writer=resp.getWriter(); //写入一个json对象 writer.write(new Gson().toJson(user)); //关闭输出流 writer.close(); }
客服端取出数据
$.post( "login", {}, function (data) { alert("响应成功"+data.id+data.name+data.age); } );
二、Jackson组件
(一)、导入jar包
(二)、使用步骤
例子:
把一个集合对象转换为json集合,并且以json对象的格式响应给客户端。
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { User user = new User(1,"lurenjia",18); User user1 = new User(1,"xxc",22); ArrayList<User> list = new ArrayList<>(); list.add(user); list.add(user1); //设置响应格式 resp.setContentType("application/json;charset=utf-8"); //获取到输出流 PrintWriter writer=resp.getWriter(); //写入一个json对象 writer.write(new ObjectMapper().writeValueAsString(list)); //关闭输出流 writer.close(); }
客服端取出数据
$.post( "login", {"name":"张三","age":18}, function (data) { alert("响应成功"+data[1].id+data[1].name+data[1].age); } );
若不设置响应格式为json,则在客户端可以使用eval来获取数据:
$.post( "login", {"name":"张三","age":18}, function (data) { eval("var obj = " +date); alert("响应成功"+obj.id+obj.name+obj.age); } );