在Java中解析应用程序/ json Jersey @Consumes MIME类型的最佳方法是什么?

时间:2017-05-21 16:47:55

标签: java json rest jersey jax-rs

正如问题所述,我的Jersey webapp使用@Consumes注释在POST请求中使用JSON然后将其保存到变量的最佳方法是什么? 我的方法是这样的:

@Path("/postask")
@POST
@Consumes("application/json")
@Produces("text/plain")
public String postAsk(@Context ServletContext context) {
    return Chatbot.ask(someinputgottenfrommyjson, context);
}

我知道我的Chatbot方法只有一个字符串输入,我可以使用text / plain类型,但这是无关紧要的。我这样做是为了将来扩展。 我的应用程序将收到一个看起来有点像{ "input": "Some Text Input provided by the client" }的JSON字符串,我需要获取该输入字段并将其保存到变量中。 从查看其他答案和教程,看来这样做的一种方法是创建一个反映JSON对象中的字段的类,并且Jersey会自动解析到该对象。也许我错了。我不喜欢这种方法,因为它会创建庞大的类。另一种方法是可能使用表单参数,但我不确定这是否有效。是否有捷径可寻? 很抱歉,如果我的问题很愚蠢,我以前从未使用过Jersey或Java网络应用程序。

1 个答案:

答案 0 :(得分:0)

我找到了一种绕过制作DAO的方法。您可以让您的方法获取一个String,然后将其解析为org.json.JSONObject。