使用Java展平JSON层次结构

时间:2011-04-22 02:03:39

标签: java json mongodb

所以我有一个页面对象的层次结构,我正在从Postgres系统迁移到MongoDB,但我仍然需要支持一些遗留的客户端系统,这些系统期望数据采用扁平的RDBMS格式。

如果我将它存储在Mongo中,我有类似的东西:

{
    "id": "1",
    "title": "Top Page",
    "children": 
    [
        {
            "id": "2",
            "title": "Page Two",
            "children": 
            [
                {
                    "id": "3",
                    "title": "Page Three",
                    "children": []
                }
            ]
        }
        {
            "id": "4",
            "title": "Page Four",
            "children": []
        }
    ]
}

但我需要重新格式化,因此客户端应用程序可以读取它。他们期望以这样的格式:

[
{
    "id": "1",
    "title": "Top Page",
    "parentid": "top"
}
{
    "id": "2",
    "title": "Page Two",
    "parentid": "1"
}
{
    "id": "3",
    "title": "Page Three",
    "parentid": "2"
}
{
    "id": "4",
    "title": "Page Four",
    "parentid": "1"
}
]

使用Java或MongoDB驱动程序有一种简单的方法吗?或者我只需要通过每个对象进行迭代并手动设置parentids? (其中一些层次结构相当大)。

1 个答案:

答案 0 :(得分:1)

有1000种方法可以展平层次结构,因此我怀疑是否有现成的API可以做到这一点。手动完成。毕竟,这是一种简单的递归方法。