2011-04-22 20 views
2

ページオブジェクトの階層があり、PostgresシステムからMongoDBに移行していますが、フラットなRDBMSスタイル形式のデータを必要とするレガシークライアントシステムをサポートする必要があります。Javaを使用したJSON階層のフラット化

私はモンゴに格納した場合、私はちょっとこのようなものがあります:

{ 
    "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ドライバでこれを行う簡単な方法はありますか?または私はちょうどオブジェクトのそれぞれを介して反復し、手動で親を設定する必要がありますか? (これらの階層のいくつかはかなり大きい)。

答えて

1

階層を平坦化する方法は1000通りあります。そのため、既存のAPIがあるかどうかは疑問です。手動で行います。結局のところ、単純な再帰的な方法です。

関連する問題