我有一个包含以下部分的JSON:
{
"authors": [
{
"author": {
"name": "Foo Bar"
}
},
{
"author": {
"name": "Bar Foo"
}
}
]
}
它可以很容易地Map到以下DTO:
public class Response {
@SerializedName("authors")
private List<AuthorsItem> authors;
}
class AuthorsItem {
@SerializedName("author")
private Author author;
}
class Author {
@SerializedName("name")
private String name;
}
为简洁起见,省略了getter/setter
有没有办法避免这样一个复杂的结构,例如List<Author> authors
?可以通过编写一个实现JsonDeserializer
的类来实现,但这是相当冗长的。
1条答案
按热度按时间4bbkushb1#
如果我没理解错的话,你只能定义Author类,并且只能从列表中访问数据,对吗?(可能是作为控制器类中的一个方法)
示例:
void saveAuthors(List<Author> authors) {}
那么您的JSON就必须按如下所示进行结构化。
反序列化时,可以采用正确标识列表的方式进行反序列化。
有关详细信息,请参阅本教程:How to Serialize Deserialize List of Objects in Java? Java Serialization Example