最近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