【问题标题】:How to send Json to JSP from servlet , with out converting it to a String如何将 Json 从 servlet 发送到 JSP,而不将其转换为字符串
【发布时间】:2014-07-25 09:23:24
【问题描述】:

我的 JSP 中有一个 Ajax 调用,它以 Java 字符串的形式返回一个 JSON 对象。

public void doGet(HttpServletRequest request, HttpServletResponse res) throws IOException, ServletException {
    try {
        String fromDate = request.getParameter("drFrom");
        String toDate = request.getParameter("drTo");
        JSONArray jsonArray = chartData.getCCSBJson(fromDate, toDate);
        res.setContentType("application/json");
        res.getWriter().write(jsonArray.toString());

我可以在不使用jsonArray.toString() 内部res.getWriter().write(jsonArray.toString()); 的情况下将JSON 发送到JSP,因为在将JSON 作为字符串发送后我无法解析JSP 中的JSON。

这与帖子有关:How to parse a JSON object from ajax call in Java Script

【问题讨论】:

  • JSONXxx 对象转换为String 应该没有问题,因为那是真正的JSON 格式。问题出在您的JSONArray 中。发布chartData.getCCSBJson(fromDate, toDate) 的代码。或者问题可能出在 JSP 方面。发布您如何在客户端中解析字符串。

标签: java javascript ajax json jsp


【解决方案1】:

只需在 Servlet 本身中将 JSON 字符串解析为 Java 对象,然后将 Java 对象而不是纯字符串传递给 JSP。

要遵循的步骤:

  • 只需创建一个作为 JSON 字符串副本的 Java POJO 类
  • 将 JSON 字符串转换为 Servlet 本身中的 POJO 类对象
  • 将HTTP请求中的对象设置为属性
  • 在 JSP 中从 HTTP 请求中取回对象

注意:Java POJO 类必须是Serializable

尝试使用将字符串解析为 JSON 的 JavaScript - JSON.parse() 方法,可选择转换通过 JavaScript 解析产生的值。

【讨论】:

    猜你喜欢
    • 2015-06-23
    • 2013-08-13
    • 1970-01-01
    • 2017-07-10
    • 2013-03-29
    • 2021-08-03
    • 2013-04-27
    • 1970-01-01
    • 2017-07-27
    相关资源
    最近更新 更多