【问题标题】:Not able to deserialize into java object无法反序列化为 java 对象
【发布时间】:2019-06-25 17:56:33
【问题描述】:

我正在尝试将 JOSN 反序列化到给定的 java 对象中,但是由于@JsonProperty,在映射中遇到了一些问题。

当我注释掉 @JsonProperty("order_type") 时,它可以正常工作,但是我无法在我的实际代码中注释掉它。

POJO 类:

class Abc {
   @JsonProperty("order_type")
   private String orderType;
}

代码片段:

Sting str="{\"orderType\":\"Credit\"}"; //assume this is having proper escape character
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.readValue(str, Abc.class);

您能否告诉我我的代码有什么问题以及如何将其反序列化为给定的 java 对象。

【问题讨论】:

  • 代码应该被格式化为代码而不是文本..
  • 我同意,这里输入的代码质量真的很低。请阅读minimal reproducible example 并向我们展示一些至少可以编译的代码。上面到处都有语法错误!您希望其他人利用空闲时间来帮助您,因此请花几分钟时间正确格式化/缩进您对我们的输入。
  • 进行了更改,您现在可以看看吗
  • 你能看看你的格式吗?将类代码和映射对象的代码分开。很难阅读。你得到什么样的错误?

标签: java jackson


【解决方案1】:

当我注释掉 @JsonProperty("order_type") 时,它工作正常。

这是因为您的 JSON 具有属性 orderType 而不是 order_type

如果您希望 JSON 输入与现有代码(包括 @JsonProperty(...) 注释)一起使用,则必须将其更改为如下所示,

{\"order_type\":\"Credit\"}

【讨论】:

  • 谢谢,但我们不能以任何其他方式做,因为更改为上述格式就像一种幼稚的方法。
  • @amitkumar 您希望杰克逊如何将order_type 映射到orderType?您可以删除 @JsonProperty("order_type") 注释,将其更改为 @JsonProperty("orderType") 或更改您的 JSON。
猜你喜欢
  • 2013-01-04
  • 2014-08-10
  • 2014-07-24
  • 1970-01-01
  • 1970-01-01
  • 2016-12-30
  • 2016-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多