【问题标题】:Unrecognized Property in fetching data from JSONObject in Jersey web service从 Jersey Web 服务中的 JSONObject 获取数据时出现无法识别的属性
【发布时间】:2013-03-01 10:33:45
【问题描述】:

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

public class 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;
    }
}

这是网络服务代码:

@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" (Class jaxrs.RequestClass), not marked as ignorable"

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

null myPassword

所以我不想忽略 Unrecognized 字段,而是想获取 email_id 的值。

请说明原因 在成功获取密码时它显示email_id 为无法识别的字段。

【问题讨论】:

  • 应该是@JsonProperty("email_id") 答案更新了

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


【解决方案1】:

只需在getEmailId() 之前添加@JsonProperty("email_id"),如下所示:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    • 2016-01-01
    • 2018-07-03
    • 1970-01-01
    • 2016-09-26
    相关资源
    最近更新 更多