我有这两个Java类
public class Artist {
@Id
private Integer id;
private String name;
private Short birthYear;
@JsonIgnore // This is Jackson
@OneToMany(mappedBy = "artist", fetch = FetchType.EAGER) // This is JPA
private List<Album> albums = new ArrayList<Album>();
. . .
@Override
public String toString() {
return name;
}
}
public class Album {
@Id
private Integer id;
private String name;
private Short releaseYear;
@ManyToOne // This is JPA
private Artist artist;
}
现在,我想要的是当我生成Album类的JSON对象时,它会返回如下内容:
{ id : 2012000587, name : 'Escultura', releaseYear : '2012', artist : 'Guaco' }
现在输出:
{ id : 2012000587, name : 'Escultura', releaseYear : '2012', artist : { id : 2044452000, name : 'Guaco', birthYear : 1987 } }
我希望不惜一切代价避免使用自定义序列化程序。
我该怎么做?
答案 0 :(得分:1)
尝试为name
属性添加getter,并使用@JsonValue
注释对其进行注释。
public class Artist {
private String name;
...
@JsonValue
public String getName() { return name; }
}
以下是Jackson Wiki页面的link以供参考。