【发布时间】:2016-05-23 00:07:38
【问题描述】:
那里。
我对在 Spring RESTful WebService 上返回 JSONObjects 有疑问。
这里是:
我的控制器中有一个方法,我想让它返回一个 JSONObject。但是,当我将它的返回类型设置为 JSONObject 并有效地返回 JSONObject 时,我收到以下错误:
HTTP Status 500 - Request processing failed; nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class org.json.JSONObject
所以,我实际上明白这意味着什么,并且我已经为这个问题寻找答案至少 3 天了。
这是我的代码:
@RequestMapping(value = "/value", method = RequestMethod.POST)
public String method(HttpServletRequest request) {
JSONObject json = new JSONObject();
json.put("example", "example message");
return json.toString();
}
我真的不知道当我必须在前端使用它时这是否会起作用(这将是一个外部应用程序)。我必须返回一个 true JSONObject 吗?还是返回 JSONObject.toString() 应该可以正常工作?
最后一件事:
大多数关于返回 JSONObject 的教程都使用我不想使用的模型对象来教授该过程。有没有办法在不使用模型对象的情况下做到这一点?
提前谢谢,偷看!
【问题讨论】:
-
显示失败的代码。你有没有用
@ResponseBody注释JSONObject有问题的方法? -
我还要注意你会带来不必要的麻烦;在这种情况下,您可以简单地返回一个
Map<String,String>,这样可以正常工作并且不会那么复杂。 -
@chrylis 不,实际上我的控制器是
@RestController,所以不需要用@ResponseBody(对吗?)注释方法。因此,我希望它返回一个 JSON,因为我计划在使用 JQuery(可能是 AJAX)发布到我的操作后使用该响应。 -
没错,但你没有发布。那么为什么你不只是返回地图呢?假设您的应用程序中包含 JSON 支持,Spring 将为您转换它(并且您应该使用 Spring Boot,这将)。
标签: java json spring web-services rest