我有一个json字符串,我想把它解析成一个java对象。
JSON字符串:
"[{\"name\": \"favorite list\", \"books\": [
{\"title\": \"bookTitle1\", \"description\": \"book description\"},
{\"title\": \"bookTitle2\"}
]}]"
Java类:
public abstract class BookList {
public abstract String name;
public abstract List<Book> books;
}
public abstract class Book {
public abstract String title;
public abstract String description;
}
当将JSON字符串反序列化为java对象时,我希望每个book
对象都有title
和description
字段。如果JSON字符串中缺少description
值,我希望title
值也设置为description
字段。
所需的Java输出:
[{name: "favorite list", books:[
{"title": "bookTitle1", "description": "book description"},
{"title": "bookTitle2", "description": "bookTitle2"}
]}]
当description
字段丢失时,我试图使用@SerializedName
注解来获取description
字段填充title
字段,但它不起作用。解决这个问题的唯一方法是为BookList
创建自定义反序列化器吗?为嵌套的Book
对象创建反序列化器的最佳方法是什么?
1条答案
按热度按时间33qvvth11#
基于你的描述,我没有在类中使用抽象来复制它。如果你愿意,你可以做一些修改。或者,如果你愿意,你可以使用Lombok来使代码更简洁。在线版本可以在here找到