【问题标题】:Apache Camel jackson unmarshaller dont workApache Camel jackson unmarshaller 不工作
【发布时间】:2020-11-05 16:55:38
【问题描述】:

我使用骆驼和杰克逊来解组带有 json 的字符串

{"GUID":"123"}


... .unmarshal().json(JsonLibrary.Jackson, TestPojo.class)

还有哈瓦波乔

    TestPojo {
     @JsonProperty("GUID)
     private String guid;

     @JsonProperty("GUID")
     public String getGuid(){
      return guid;
     }
     @JsonProperty("GUID")
     public String setGuid(){
      return guid;
     }
    }

但是有这个例外:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "GUID" (class package.TestPojo), not marked as ignorable (1 known properties: "guid")

我用处理器测试过路线,效果很好

        .process(e -> {
            ObjectMapper mapper = new ObjectMapper();
            e.getIn().setBody(mapper.readValue(e.getIn().getBody(String.class),TestPojo.class));
        })

我做错了什么?

【问题讨论】:

  • 在字段上有@JsonProperty注解就足够了。 getter/setter 不需要它。尝试使用@JsonProperty(value = "GUID")

标签: java jackson apache-camel camel-jackson


【解决方案1】:

您的 setguid 以小写形式返回 guid。但是,在 json 正文中,guid 是大写的 (GUID)。尝试将 guid 或 set 大写。

public void setGUID(String GUID){
  this.GUID = GUID 

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 2014-10-25
    相关资源
    最近更新 更多