当前位置: 首页 > 面试题库 >

将JSON子对象属性绑定到Jackson中的Java对象字段中

廉博赡
2023-03-14
问题内容

我有一个JSON对象,说:

{
  "foo": {
    "bar": 1
  },
  "baz": 2
}

我想将其绑定到Java对象中,例如:

@JsonIgnoreProperties(ignoreUnknown = true)
public class Foo {
  private int bar;
  @JsonProperty("baz")
  private int baz;
}

如何将foo.barJSON 的值设置barFooJava对象中的字段?

我尝试使用来注释字段@JsonProperty("foo.bar"),但是那样行不通。


问题答案:

这不是完美的方法,但这是我能找出的最优雅的方法

@JsonProperty("foo")
public void setFoo(Map<String, Object> foo) {
  bar = (Integer) foo.get("bar");
}


 类似资料:
  • 我有一个非常标准的Java POJO。让我们称之为狗: 狗java有一系列字段。在Java中,约定说字段名应该以小写开头。这意味着我有: 公共字符串名称 公共字符串狗型 公共弦重量 同时,我对我的JSON格式有一个要求,即JSON成员(名称、dogType和权重)的开头都要用大写字母书写,即名称、dogType和权重。 我在利用杰克逊。 如果我使用下面的标准序列化代码,我得到的JSON成员名称与它

  • 假设我有这样的物体 我正在使用RestTemboard类从URL中获取json,如下所示: 之后,我想使用jackson对象映射器将json字符串转换为一个对象 将实体类作为第二个参数传递 问题是我应该如何编写ExampleJson实体来处理get-Showed json?我试过这样上课,但似乎不管用。 我得到了这样一个例外:

  • 我需要反序列化以下json: 将它的< code>id属性设置为< code>foo_id json属性。 我需要在自定义反序列化程序中执行此操作。实现这一点最简单的方法是什么? 我想以某种方式将json“转换”为 然后将此委托给杰克逊。 在本例中,对象的类型为Foo,但其他对象可能不属于此类。另外,在本例中,json是一个数字,但如果它也是一个字符串,我希望支持。所以,我需要一种通用的方法来做到

  • 鉴于这种反应: 我怎样才能将数据属性反序列化为像这样的 MapDTO 我已经尝试使用自定义反序列化器,但是按名称获取所有属性,然后基于这些属性和嵌套对象创建一个新的MapDTO对象看起来很麻烦。如果结构发生变化,我必须更改反序列化器和DTO本身。让Jackson从给定的根开始进行反序列化会更容易。我使用Jackson 2.12.4到ResAs的4.4.0。我想避免创建不必要的包装类。

  • 问题内容: 我在以下架构中具有json对象: 在这里,该字段包含一个嵌入的json对象,并且该对象的模式是动态的,并且每次都不同。 的对象是不同的API服务,以及不同的API服务的不同方法获得的原始输出。不可能将其映射到所有可能的值。 是否可能有如下所示的java类: 或者类似的东西,以便我可以接收基本架构并对其进行处理,然后将其发送到相关类,该类将转换为适当的预期类? 问题答案: 使用 您可以从

  • 我正在寻找更好的性能(转换时间应该非常少)。 本文显示的是来自这个答案的不同API之间的性能统计。 例如,我的发现是我提到的第一个链接(只有很少的记录): null 请帮帮我。