-1

次のような JSON ファイルの解析中:

{
"heading1" : [
  {
    "heading2" : {
        "subhead2" : {
           "value" : "value<heading2>"
        }
     },
     "heading3" : [
        {
           "heading4" : {
              "subhead4" : "value<heading4>",
           },
           "heading5" : [
              {
                 "subhead51" : {
                    "511" : "value<heading51>",
                 },
                 "subhead52" : {
                    "522" : "value<heading52>",
                 },
               <..similar such heading5 sets>
              }
           ],
          }
      }
  }
 ],
}

以下のような ArrayList 変数があります。

   List<Map<String,String>> childMap = new ArrayList<Hashmap<String,String>>();

以下のように、この childMap に値を取得しています。

  for(i = 0; i<result.length; i++){
    Map<String,String> childSubMap = new HashMap<String,String>();
     childsubMap.put(heading51,value<heading51>);
     childsubMap.put(heading52,value<heading52>);

    childMap.add(childSubMap);
  }

親マップ変数:

   Map<String,String> parentMap = new HashMap<String,String>();
     parentMap.put(heading2,value<heading2>);
     parentMap.put(heading4,value<heading4>);

データ抽出には、最終的な結合マップを使用しています。

以下のように組み合わせる方法はありますか?

                 Key             |       Value
  __________________________________________________________
  heading2, value<heading2>      |  <Set 1>
  heading4, value<heading4>      |    heading51, value<heading51>
                                 |    heading52, value<heading52>
                                 |  <Set 2>
                                 |    heading51, value<heading51>
                                 |    heading52, value<heading52>
                                 |  ..<many such Sets>

事前に助けてくれてありがとう!

4

1 に答える 1

2

リスト内のすべてのマップを 1 つのマップにマージするだけの場合は、次のようにします。

for (Map<String,String> m : childMap)
{
    parentMap.putAll(childMap);
}

重複するキーがある場合、最後のキーが保持され、残りは破棄されます。

于 2012-05-08T23:33:17.243 に答える