欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Servlet输出JSON数据Servlet向浏览器返回JSON数据

程序员文章站 2024-02-03 10:01:16
...

                        Servlet输出JSON数据Servlet向浏览器返回JSON数据

 

一、依赖jar包

1、 gson-2.8.5: 对象和json字符串之间相互转换。

 

 

二、代码实现 -- 普通字符串返回

@WebServlet("/jsonServlet")
public class JsonServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws     ServletException, IOException {
        // 解决json中文乱码
        response.setContentType("text/json;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();
        String str ="{\"姓名\":\"HaHa先生\",\"年龄\":\"18岁啦\"}";
        out.println(str);
        out.flush();
        out.close();
    }
}

 

三、代码实现 -- 对象 -- 使用Gson对象转字符串

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 解决json中文乱码
    response.setContentType("text/json;charset=UTF-8");
    response.setCharacterEncoding("UTF-8");
    PrintWriter out = response.getWriter();
    List<Client> list = clientService.findList(new Client());
    Gson gson = new Gson();
    String json = gson.toJson(list);
    out.println(json);
    out.flush();
    out.close();
}

 

四、 使用ajax获取json数据


<script type="text/javascript">
    $.ajax({
        url:'${ctx}/jsonServlet',
        type:'POST',
        data:{},
        dataType:'json',
        success:function(data){
            var str =JSON.stringify(data);
            alert(str);
        }
    });
</script>

五、总结

1、本示例代码中使用的Servlet版本是3.0 ,故而使用了注解的形式。 低于3.0的朋友,请在web.xml文件中配置Servlet,这里不再列出。

2、三 中的对象,可以是任意对象,为了代码简洁,易于理解,不再列出获取 List 的详细代码。

3、servlet中输出json数据,请使用 response 。 使用前需设置下 编码格式和响应内容类型,否则可能会造成中文乱码。 (代码开头那两句话!)