温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JSP如何输出JSON数据

发布时间:2026-07-17 06:35:28 来源:亿速云 阅读:97 作者:小樊 栏目:编程语言

在 JSP 中输出 JSON 数据,本质上就是把 JSON 字符串写到响应中,并设置正确的 Content-Type。常见做法如下:


一、最简单方式(直接在 JSP 中输出)

<%@ page contentType="application/json;charset=UTF-8" language="java" %>

{
  "name": "张三",
  "age": 25,
  "success": true
}

✅ 适合简单、固定的 JSON
❌ 不适合动态数据


二、使用 Java 变量生成 JSON(常见)

JSP 代码

<%@ page import="com.google.gson.Gson" %>
<%@ page contentType="application/json;charset=UTF-8" language="java" %>

<%
    Gson gson = new Gson();
    java.util.Map<String, Object> map = new java.util.HashMap<>();
    map.put("code", 200);
    map.put("msg", "成功");
    map.put("data", "hello jsp");

    String json = gson.toJson(map);
    out.print(json);
%>

✅ 使用 Gson / Jackson 工具
✅ 适合动态数据


三、使用 Jackson(更主流)

JSP

<%@ page import="com.fasterxml.jackson.databind.ObjectMapper" %>
<%@ page contentType="application/json;charset=UTF-8" language="java" %>

<%
    ObjectMapper mapper = new ObjectMapper();
    java.util.Map<String, Object> result = new java.util.HashMap<>();
    result.put("id", 1);
    result.put("name", "Tom");

    mapper.writeValue(out, result);
%>

四、结合 Servlet / Ajax(推荐)

JSP(前端)

<script>
fetch('jsonServlet')
  .then(res => res.json())
  .then(data => console.log(data));
</script>

Servlet

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws IOException {
    resp.setContentType("application/json;charset=UTF-8");

    Map<String, Object> map = new HashMap<>();
    map.put("status", "ok");

    ObjectMapper mapper = new ObjectMapper();
    mapper.writeValue(resp.getWriter(), map);
}

✅ 最佳实践
✅ 前后端分离、可维护性强


五、常见错误

❌ 输出 JSON 却忘记设置 Content-Type
❌ JSP 中有空行、HTML 标签,导致 JSON 非法
❌ JS 端使用 eval() 解析 JSON(不安全)


六、总结

场景 推荐方式
简单测试 JSP 直接输出 JSON
动态数据 Gson / Jackson
正式项目 Servlet + JSON
Ajax 接口 application/json

如果你愿意,我可以给你一个完整可运行的 JSP + JSON + Ajax 示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手