【问题标题】:Responding with JSON Array in a JSP page在 JSP 页面中响应 JSON 数组
【发布时间】:2017-03-07 21:51:05
【问题描述】:

所以我正在开发一个旧应用程序,目前我不得不使用 JSP,我对此非常不熟悉(而且对 Web 开发的大部分方面都不熟悉)。

我在 Java 类方法中使用 JSONSimple 生成 JSON 数组,然后在 GET 请求上从 JSP 调用该方法以获取 JSON。听起来很简单。

在浏览器中访问 URL 时,我能够获取我的 JSON。现在我正试图从另一个应用程序访问我的 JSP 页面,这就是我遇到困难的地方。我的“JSON”的内容类型是 text/html,而不是 JSON,所以我尝试在我的 JSP 中将内容类型设置为 JSON,现在浏览器中没有显示任何内容,当我的 Spring 应用程序给我这个错误时尝试从 URL 获取 JSON:无法读取文档:由于在...处输入结束,没有要映射的内容。

这是我的 JSP:

<%@ page import="com.company.Someclass" %>

<% if(request.getMethod().equals("GET")){
    response.setContentType("application/json");
    Someclass.getJSONArray();
}
else if(request.getMethod().equals("POST")){
    //todo
}

%>  

任何帮助将不胜感激,因为我现在很迷茫。谢谢!

【问题讨论】:

  • @Matt1776 已经尝试了该解决方案,但没有运气:/
  • 您能展示一下您是如何使用该解决方案的吗?使用 REST 客户端测试您的 URL(我喜欢 Chrome 上的 Postman)。

标签: java json jsp


【解决方案1】:

我自己解决了这个问题。我能够在浏览器中获取 JSON,但在我的 Spring 应用程序中无法读取它。但那是另一场战斗。这是我的解决方案:

<%@ page import="com.company.Someclass" %>

<% String ret = "";
if(request.getMethod().equals("GET")){
    response.setContentType("application/json");
    Someclass.getJSONArray().toJSONString();
}
else if(request.getMethod().equals("POST")){
    //todo
}

%>  

<%= ret %>

toJSONString() 是 json-simple 的 JSONArray 类的方法

【讨论】:

  • 基本上我返回的是一个 JSON 对象而不是一个字符串,浏览器和显然我的 Spring 不知道如何处理它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-20
  • 2020-04-08
相关资源
最近更新 更多