Java 检查额外字段

Java 检查额外字段,java,jersey,jax-ws,Java,Jersey,Jax Ws,我将Jersey与javax.ws.rs*一起使用 我有以下功能: @PUT public R modify(@PathParam("id") int id, R in) throws Exception { ... } 其中R(资源)是一个JSON对象,包含要更新的字段。例如: { "name": "Building", "address": "Street number", "address2": "Lower floor" } { "name": "Qcast

我将Jersey与javax.ws.rs*一起使用

我有以下功能:

@PUT
public R modify(@PathParam("id") int id, R in) throws Exception {
    ...
}
其中R(资源)是一个JSON对象,包含要更新的字段。例如:

{
  "name": "Building",
  "address": "Street number",
  "address2": "Lower floor"
}
{
  "name": "Qcast HQ",
  "illegalField" : "someValue"
}
更新过程正在运行,但作为使用此API的网站开发人员的额外措施,我希望该方法在发送不允许的字段时引发异常。例如:

{
  "name": "Building",
  "address": "Street number",
  "address2": "Lower floor"
}
{
  "name": "Qcast HQ",
  "illegalField" : "someValue"
}

因为输入被视为资源对象,所以我不确定该方法是否可以检查非法字段。也许有一个注释或者我可以用来检查这个?

因为你的
资源
对象没有任何字段可以捕获
非法字段
,所以即使在传入的JSON中传递
非法字段
,它也不会伤害你的应用,对吗?事实上,我的应用不会受到伤害。但是,如果有误解,网络开发人员最好能立即得到反馈;比如发送
postalCode
而不是
zipCode
。如果请求失败而不是(部分)成功,那将是有益的。在这种情况下,您可以在
资源中声明
postalCode
@Required
,并且无法提供像
{“error:”missing field“,”desc:“'postalCode'Required”}这样的生成错误json,我不是一名泽西专家,但是看看它是否有用:如果您使用Jackson作为JSON提供程序,我认为默认情况下它应该对无法识别的字段抛出异常(除非配置为不这样做)。由于您的
资源
对象没有任何字段可捕获
非法字段
,因此即使传入的JSON中传递了
非法字段
,它不会伤害你的应用,对吗?事实上,我的应用不会受到伤害。但是,如果有误解,网络开发人员最好能立即得到反馈;比如发送
postalCode
而不是
zipCode
。如果请求失败而不是(部分)成功,那将是有益的。在这种情况下,您可以在
资源中声明
postalCode
@Required
,并且无法提供像
{“error:”missing field“,”desc:“'postalCode'Required”}这样的生成错误json,我不是一名泽西专家,但是看看它是否有用:如果您使用Jackson作为JSON提供程序,我认为默认情况下它应该在无法识别的字段上抛出异常(除非配置为不这样做)。