我检查了@JsonIdentityInfo
,@JsonManagedReference
和@JsonBakcReference
,但似乎没有人管理我的问题。
基本上我有下表:
id | name | parent_id
1000 | Item 1 | (null)
2000 | Item 2 | 1000
2001 | Item 3 | 2000
2002 | Item 4 | 2000
3000 | Item 5 | 1000
3001 | Item 6 | 3000
我有以下JPA实体:
@Entity
@Table(name = "table")
public class table {
@Id
@Column(name="id")
private Long id;
@Column(name="name")
private String name;
@Column(name="parent_id")
private Long id;
//getters setters
}
我想要实现的是生成以下JSON字符串:
[{title: "Item 1", key: "1000"}, {title: "Item 2", key: "2000", children[{title: "Item 3", key:"2001"},{title: "Item 4", key": "2002"}]},{title: "Item 5", key:"3000", children[{title: "Item 6", key: "3001"}]}]
我的主要问题是如何将序列化编写为JSON?知道我可以在彼此中有几个级别
答案 0 :(得分:1)
即使我正在寻找一个答案 - 我有很多方法,但不确定哪一个最合适。在我的大多数项目中,我都做了自定义映射
我的实体类将有两个方法 - 从JSON到反序列化JsonNode / JSONObject到我的bean toJSON()方法将实体数据序列化为JsonGenerator / JSONObject,具体取决于我使用的库。
我找到了上面(1)的另一种替代方法:我使用Jackson-databinding将数据序列化/反序列化为JSON。如果你在类路径中有spring和mvc依赖项以及jackson数据绑定库,那么这将自动完成。这看起来很有希望。
但是上面的(1)我可以在生成的JSON输出中自定义格式和标签名称。此外,我可以为TAG名称导出单个常量文件,这些文件也可以在客户端项目中使用(这有助于我使用GWT进行客户端UI开发)。