我正在创建一个具有嵌套列表的API。Jackson似乎是一个创建对象的很好的工具,但是我不知道如何嵌套一个列表,我想知道它是否可行。
我的对象看起来像这样。
public class Order {
public String name;
public List<Item> items;
}
我希望有一种方法可以将它Map到json,类似于:
{
name : "A name"
items : {
elements : [{
price : 30
}]
}
}
我们希望能够做到这一点,这样我们就可以添加属性到列表。
4条答案
按热度按时间oyjwcjzk1#
您可以为
List<Item> items
编写自定义反序列化程序。请参见以下示例:现在,你必须通知Jackson将其用作你的财产。你可以这样做:
ioekq8ef2#
一般来说,最好将JSON结构精确地Map到Java。在您的情况下,可以使用类似如下的代码:
或者,您也可以使用(相对而言)新
@JsonFormat
注解:在这里,您将强制
List
或Collection
序列化,就像它是POJO一样,而不是常规的特殊处理。qncylg1j3#
您的JSON将转换为:“名为
items
的对象属于具有名为elements
的属性的类型,该属性是某种列表”。因此,Item类只需要一个
elements
属性:请注意,Java代码并不Map到JSON,Java类将Map到如下内容:
dhxwm5r44#
对于scala,可以尝试: