Java 获取';剩余的';jsonb没有在我的第一个对象上使用的数据?
我正在开发的REST api中有以下方法:Java 获取';剩余的';jsonb没有在我的第一个对象上使用的数据?,java,jax-rs,jsonb,Java,Jax Rs,Jsonb,我正在开发的REST api中有以下方法: @POST @Consumes (MediaType.APPLICATION_JSON+ ";charset=utf-8") @Produces (MediaType.APPLICATION_JSON + ";charset=utf-8") public RunInstance startRun ( RunInstance runInstance ) RunInstance对象的工作方式类似于各种属性的持有者,在启动长时间运行的操作之前,这些属性可
@POST
@Consumes (MediaType.APPLICATION_JSON+ ";charset=utf-8")
@Produces (MediaType.APPLICATION_JSON + ";charset=utf-8")
public RunInstance startRun ( RunInstance runInstance )
RunInstance对象的工作方式类似于各种属性的持有者,在启动长时间运行的操作之前,这些属性可能是必需的,也可能不是必需的。其某些字段稍后将用作反馈,当客户端需要操作状态更新时,将返回此对象:
public class RunInstance {
private int ruleId;
@JsonbTransient private String ruleSubmitResult;
private String status;
private String errorMessage;
private String action;
private int runId;
private java.time.LocalDateTime startDt ;
private java.time.LocalDateTime endDt ;
private int inputRows;
private int currentLoop;
....
现在,将执行的实际操作将根据ruleId而有所不同。每个操作都有不同的要求,可以接受不同的参数
如果我将我的方法签名保留为
public RunInstance startRun ( RunInstance runInstance )
它允许我自动填充此对象。但是,客户机还将传递一些与每个特定操作相关的参数/json数据,这些参数/json数据将根据操作类型而有所不同
我想做的不是将方法签名更改为
@POST
@Consumes (MediaType.APPLICATION_JSON+ ";charset=utf-8")
@Produces (MediaType.APPLICATION_JSON + ";charset=utf-8")
public RunInstance startRun ( Map<String,String> bodyParams)
@POST
@使用(MediaType.APPLICATION_JSON+“charset=utf-8”)
@产生(MediaType.APPLICATION_JSON+“charset=utf-8”)
公共运行实例startRun(映射bodyParams)
然后必须手动提取与填充RunInstance对象相关的参数,前提是我可以自动填充它,同时还可以访问其余的参数(未用作此对象的值)
但是,根据该帖子,不可能发布两个对象:
有人知道有什么方法可以实现这样的目标吗?
i、 e.喜欢
public RunInstance startRun ( RunInstance runInstance , Map<String,String> remainingbodyParams)
public RunInstance startRun(RunInstance RunInstance,Map remainingbodyParams)
将映射作为RunInstance的属性如何?我知道杰克逊能做到。但是我不知道JSONB。我尝试将映射作为一个属性,尽管它没有像我描述的那样工作,但它很好地解决了这个问题:客户端可以发送一个命名json对象,该对象与映射的名称相关联,包含传递给映射的名称-值对集。然后,我可以使用这些作为应用程序所需的参数。