首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用泽西和杰克逊解析具有未知结构的POST请求

使用泽西和杰克逊解析具有未知结构的POST请求
EN

Stack Overflow用户
提问于 2014-11-13 21:54:38
回答 1查看 1.1K关注 0票数 1

在当前情况下,我有一个接受传入JSON消息的REST端点。

问题是,我认为我不能指定POJO对象,因此Jackson可以将JSON传递到POJO对象中。这样做的原因是,我无法控制到达该端点的内容,而且字段和类型的数量会随着时间的推移而改变,因此,在手动之前定义POJO似乎不是一个选项。

所以,我想问题,is....can,我只是告诉杰克逊,不要做任何编组,并给出字符串的反应?稍后我可以处理JSONObject-JSONArray或Gson。说我会有这样的方法:

代码语言:javascript
复制
@POST
@Path("/callback")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response facebookUpdate(String json) {
    //Do something with the json response...
}

如果泽西-日航不可行的话.还有其他选择吗?

谢谢!亚历杭德罗

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-13 22:09:43

最简单的方法就是不将json注入方法中,而是使用请求对象:

代码语言:javascript
复制
public Response facebookUpdate(@Context request) {
    try(InputStream is=request.getEntityInputStream()) {
       ...
    }
}

然后,您可以从请求中获取请求的输入流,并以任何您喜欢的方式解析它。

对于解析,我可以推荐我自己的杰森杰库,它是专门为支持开放式场景而编写的,如您所描述的,并使用jackson将其反序列化为高度定制的java.util.Map和java.util.List实现。Gson也是一个非常可靠的选择。

如果您想在整个范围内执行此应用程序,您可以编写自己的@Provider,并在那里执行相同的操作。我现在就是这样使用我的图书馆的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26919156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档