【问题标题】:Can I accept JSONObject as parameter in Rest API?我可以接受 JSONObject 作为 Rest API 中的参数吗?
【发布时间】:2018-12-19 10:28:06
【问题描述】:

我的代码如下:

@Path("/test")
public class Test {

@POST
@Path("/postSomething")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public RestMessageResponse postSomething(JSONObject inputJSONObject) {
   ..do something
}
}

当我向适当的 url 发送 post 请求时,它没有到达代码。

【问题讨论】:

  • 能否分享一下错误或调试日志?
  • 没有这样的错误,尽管使用邮递员这是我收到的消息----无法识别的字段“projectId”(类 org.json.JSONObject),在 [Source 中未标记为可忽略: org.apache.catalina.connector.CoyoteInputStream@396f60;行:2,列:16](通过引用链:org.json.JSONObject["projectId"])我的请求正文包含一个以 projectId 作为第一个键的 json

标签: java rest


【解决方案1】:

你为什么要这样做?

只需在您的 HTTPRequest 中发送纯 JSON 并解析它。对我来说,这通常是这样的:

@RequestMapping(path= "/app/syncImages", method = RequestMethod.POST, produces = "application/json", consumes = "application/json") 
public ResponseEntity<?> someMethod(@RequestBody String body){              
    JSONObject request = new JSONObject(body);
    ...
}

您是否尝试过您的代码?它在某些容量下不起作用吗?

【讨论】:

  • 我最近看了以下帖子:stackoverflow.com/questions/14600510/…
  • 我试图实现上面链接中所示的目标,但它对我不起作用。
  • 呵呵,也许你可以在链接中的具体答案下发表评论,以引起原发布者的注意,他可能会帮忙。我会看看我是否可以自己研究一下。有趣的是,stackoverflow.com/a/44723288/7591918 正是我所做的,因为我来自 JAVA/NG 背景来回答这个问题
猜你喜欢
  • 2013-10-26
  • 1970-01-01
  • 1970-01-01
  • 2012-03-08
  • 2014-05-27
  • 1970-01-01
  • 2015-07-08
  • 1970-01-01
相关资源
最近更新 更多