最近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-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZ0eHQ9JUU4JUE0JTg3JUU2JTk1JUIwJUUzJTgyJUFEJUUzJTgzJUJDJUUzJTgyJTkyJUU2JThDJTgxJUUzJTgxJUE0JUUzJTgzJThGJUUzJTgzJTgzJUUzJTgyJUI3JUUzJTgzJUE1JUUzJTgzJTg3JUUzJTgzJUJDJUUzJTgyJUJGJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0wNDU5NGMyNDEzZjkxZGVhYWMwZTk5NTQxNGYxNjc3OQ%26mark-x%3D142%26mark-y%3D112%26s%3D14e6650e075b89c6602ed4486b9ec707?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwRFFNZXJBJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0zZDVjNzM4Y2Q1Mjc1Yzg3Y2RhNDk4OWY2MjQ5ZTMwNw&mark-x=142&mark-y=491&s=06b5bd4d234f56fcaca23da3e284a920)
複数キーを持つハッシュデータ - Qiita
作り方自体はもうこれ書いてあるままじゃねえか!という話でしか無いんですけど hashdata.java Map<String, Map<String,Integer>> map = new HashMa...
コメント