从Jersey Web服务中的JSONObject获取数据时无法识别的属性

时间:2013-03-01 10:33:46

标签: json web-services jersey jackson jax-rs

我需要将某个JSON字符串转换为Java对象。我正在使用Jackson进行JSON处理。 这是我的Java类 -

公共类RequestClass {

String email_id;
String password;

public String getEmailId() {
    return email_id;
}

public String getPassword() {
    return password;
}

@Override
public String toString(){

    return email_id+" "+password;
}

} 这是Web服务代码 -

    @POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("/dbconnect3")
public String connectToDbTest3(RequestClass rc) {
    System.out.println("connectToDbTest3");
    String email_id = rc.getEmailId();
    String password = rc.getPassword();
    System.out.println(email_id+" "+password);

}

抛出异常UnrecognizedPropertyException,消息“Unrecognized field”email_id“(类jaxrs.RequestClass),未标记为可忽略”。

如果我在我的Java类中没有使用注释@JsonIgnoreProperties(ignoreUnknown = true),我在第09行的输出是 -

null myPassword

所以我不想忽略无法识别的字段,而是想获得email_id的值。

请说明为什么在成功提取密码时将email_id显示为无法识别的字段。

提前致谢

1 个答案:

答案 0 :(得分:1)

只需在getEmailId()

之前添加JsonProperty("email_id")即可

如下所示

@JsonProperty("email_id")
public String getEmailId() {
return email_id;
}