最近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してやったら良いだけなのに結構悩みました. 難しいですね.

参考

https://qiita.com/DQMerA/items/965cd6462e1795e0d1a3

徹底攻略 Java SE 8 Silver 問題集[1Z0-808]対応

posted with カエレバ

志賀 澄人 インプレス 2016-01-18

Amazon

楽天市場