0

連絡先マネージャーを構築しようとしています。いくつかのプロパティを持つデータ構造を念頭に置いています。

  • これはツリーのようなものです。つまり、各情報をサブピースに分割できます (各ノードには子があります)。たとえば、 と呼ばれるフィールドは、、、 などのサブフィールドaddressで構成されている場合があります。streettownpostal code

  • ノードは一意である必要はありません。たとえば、emailフィールドのいくつかのノードは (同じレベルで) 隣り合って共存できる必要があります。

パスのような方法を使用してツリーを探索できるようにしたいと思います。たとえば、パスでノードにアクセスします:address.streetまたはname.first. キーが複数回存在するノードへのアクセスは、 のように実行できますemail[2]

ツリーは次のようになります。

contact
   ↳ name
        ↳ first      "foo"
        ↳ last       "von bar"
   ↳ email           "foo@bar.com"
   ↳ email           "baz@foo.de"
   ↳ address
           ↳ street  "foostreet 42"
           ↳ town    "barstadt"
           ↳ zip     "04229"
           ↳ country "footopia"
   ↳ address
           ↳ street  "barton alley 11"
           ↳ town    "foostadt"
           ↳ zip     "998877"
           ↳ country "alcabaz"

これは何の木ですか?Boost を使用してみましたが、高レベルで分割する必要がproperty_treeあるという事実を実装するのが難しいことがわかりました(Boost の標準的な方法では、 、、 ... ノードが 1 つにまとめられます)。addressstreettownaddress

どんなアイデアでも大歓迎です。

4

1 に答える 1

0

これは何の木ですか?

それは木です;)

ツリーをモデル化するために、JSON と Jackson Lib を使用できます。

http://www.mkyong.com/java/jackson-tree-model-example/

于 2012-11-01T13:09:27.010 に答える