MEMO:Javaでネストされているハッシュデータの取得

最近Javaが嫌いから少し嫌いにステップアップしたしののめ(@Shinogasa)です.

 

ネストされたハッシュデータを取得するのに手間取ったのでメモ.

 

こんな感じのJSONが投げられてきた

{ 
  "hoge": "fuga", 
  "call":{ 
    "yeah": "tiger", 
    "fivo": "wiper" 
  } 
}

 

これからネスト内のデータを取得したかった.

 

Public void catch_data(HashMap<String, Object> info) { 
  //fugaを取りたいとき 
  String get_fuga = (String) info.get("hoge"); 
  log.debug("get_fuga : {}",get_fuga); //get_fuga : fuga 


  //tigerを取りたいとき 
  HashMap<String, Object> get_call = (HashMap<String, Object> info.get("call"); 
  String get_tiger = (String) get_call.get("yeah"); 
  log.debug("get_tiger : {}",get_tiger); //get_tiger : tiger 

  //1行でtigerを取りたいとき 
  String get_tiger1 = (String) ((HashMap<String, Object>) info.get("call")).get("yeah"); 
  log.debug("get_tiger1 : {}",get_tiger1); //get_tiger1 : tiger 

}

 

単純に要素に対して2回getしてやったら良いだけなのに結構悩みました.

難しいですね.

 

参考

複数キーを持つハッシュデータ - Qiita
作り方自体はもうこれ書いてあるままじゃねえか!という話でしか無いんですけど hashdata.java Map<String, Map<String,Integer>> map = new HashMa...

 

コメント

タイトルとURLをコピーしました