使用GSON轻微展平对象

时间:2016-08-17 11:19:08

标签: java json gson

我的Java实体看起来像

{
    id: 123,
    name: "Some Name",
    someList: [1, 2, 3],
    data: {
        someDetail: "Whatever",
        anotherDetail: "And so on"
    }
}

即,我把一些无聊的东西变成了@Embeddable Data data。它适用于Java,但我通过GSON转移实体(没有DTO),在Javascript中,我更喜欢更扁平的结构

{
    id: 123,
    name: "Some Name",
    someList: [1, 2, 3],
    someDetail: "Whatever",
    anotherDetail: "And so on"
}

唯一需要的改变是将data的内容视为直接在主要对象中,其他部分应保持原样。也需要反序列化。

1 个答案:

答案 0 :(得分:0)

您可以创建一个简单的数据类,将必要的数据点从输入类转换为单个级别。 然后你可以将那个平面类导出为json。

class objectFlat {
    int id;
    String name;
    List<Integer> someList;
    String someDetail;
    public objectFlat(ObjectInput input) {
        this.id = input.id;
        this.name = input.name;
        this.someList = input.someList;
        this.someDetail = input.getData().someDetail;
    }

}