无POJO的Java Jackson JSON
我目前正在将一个节点项目转换为DW。节点项目当前将来自客户端的JSON存储为字符串,然后在客户端获得相同资源时返回application/JSON。这基本上是一个键/值存储重置端点 我想用dropwizard实现同样的功能,但我不想在POJO中映射出整个结构及其嵌套结构。有没有办法做到这一点?我只想用键将JSON保存为数据库中的字符串,我根本不想在java应用程序中处理数据 既然API要求我返回一个对象,那么该对象应该是什么?这是我为DW提供的函数,您可以看到它期望返回一个对象无POJO的Java Jackson JSON,java,json,jackson,dropwizard,Java,Json,Jackson,Dropwizard,我目前正在将一个节点项目转换为DW。节点项目当前将来自客户端的JSON存储为字符串,然后在客户端获得相同资源时返回application/JSON。这基本上是一个键/值存储重置端点 我想用dropwizard实现同样的功能,但我不想在POJO中映射出整个结构及其嵌套结构。有没有办法做到这一点?我只想用键将JSON保存为数据库中的字符串,我根本不想在java应用程序中处理数据 既然API要求我返回一个对象,那么该对象应该是什么?这是我为DW提供的函数,您可以看到它期望返回一个对象 @GET @Un
@GET
@UnitOfWork
@Timed
@ApiOperation(value="Find value by ID", notes="Get a value object from the DAO using ID as the sole criterion")
@ApiResponses(value={
@ApiResponse(code=400, message="Invalid ID"),
@ApiResponse(code=404, message="No object found by specified ID")
})
public SomeJavaOjbectMustGoHere getSample(
@ApiParam(value="id of object to get", required=true)
@QueryParam("id")
Long id
) throws WebApplicationException {
SomeJavaOjbectMustGoHere returned = dao.get(id);
if (returned == null) throw new WebApplicationException(Response.Status.NOT_FOUND);
else return returned;
}
以下是节点中的大部分代码:
module.exports=函数(服务器){
函数createResponse(req、res、next){
var key=req.params.name;
log(“为键创建响应:“+req.params.name+”);
//…一些验证。。。
如果(…废话){
//失败。
res.send(403,“没有有效的键和结构,无法保存响应”);
返回next();
}
var data=JSON.stringify(req.body);
//…将资料存储在数据库中。。。
res.send(201,“已保存”);
返回next();
}
函数getResponse(请求、恢复、下一步){
试一试{
var有效载荷={};
//…获取与密钥匹配的数据。。。
res.header(“内容类型”、“应用程序/json”);
res.send(200,JSON.parse(payload.toString());
}
捕捉(错误){
console.log('未找到数据')+错误;
res.send(200,
{
“id”:Math.random().toString(36).substr(3,8),
//…默认结构。。。
});
}
返回next();
}
函数发送(req、res、next){
res.send('响应'+请求参数名称);
返回next();
}
server.post('/response/:name',createResponse);
server.put('/response',send);
get('/response/:name',getResponse);
head('/response/:name',send);
del('/response/:name',函数rm(req,res,next){
res.send(204);
返回next();
});
}
如果您不想创建自己的对象模型,那么Jackson有一个解决方案
如果不想对数据执行任何操作,只需返回字符串
,然后将以下注释添加到方法中:
@Produces(MediaType.APPLICATION_JSON)
谢谢,现在就看吧。我也需要换个职位吗?我怎么才能拿到绳子,它只是身体吗?是的。您可以接受post正文作为字符串,也可以接受所有告诉JsonNode建议的站点使用它将json转换为POJO。因此,它没有看到一个好例子。