1

我检查了@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?知道我可以在彼此有几个层次

4

1 回答 1

1

即使我正在寻找一个答案 - 我有很多方法,但不确定哪一个最适合。在我的大多数项目中,我都做了自定义映射

  1. 我的 Entity 类将有两种方法 - fromJSON 将 JsonNode/JSONObject 反序列化为我的 bean 和 toJSON() 方法将实体数据序列化为 JsonGenerator/JSONObject,具体取决于我使用的库。

  2. 我找到了上述 (1) 的另一种选择:我使用 Jackson-databinding 将数据序列化/反序列化为 JSON。如果你在类路径中有 spring 和 mvc 依赖以及 jackson 数据绑定库,这将自动完成。这看起来很有希望。

但是通过上面的 (1),我可以自定义生成的 JSON 输出中的格式和标签名称。我还可以为 TAG 名称导出单个常量文件,也可以在客户端项目中使用(这对我有很大帮助,因为我使用 GWT 进行客户端 UI 开发)。

于 2013-12-09T12:45:31.927 回答