前提・実現したいこと
Javaでminecraftというゲームのユーザー名をJSONを使用してUUIDから取得する仕組みをMojangAPI、JacksonAPIを使って実装しようとしています。
すると、名前を変更したことがあるユーザー(要素が複数ある)はエラーなく取得できるのですが、名前を変更したことがないユーザー(要素が一つしかない)はNullPointerExceptionが出てしまいます。
ほかにもほしい情報がありましたら送ります。
MojangAPIから取得したJSONの形式
名前を変更したことがないユーザー
JSON
1[ 2 { 3 "name" : "ユーザー名" 4 } 5]
名前を変更したことがあるユーザー
JSON
1[ 2 { 3 "name" : "ユーザー名" 4 }, 5 { 6 "name" : "ユーザー名","changedToAt" : (何を意味する値かはわかりませんが、おそらくこの件には関係ないと思われます。) 7 }, 8 ...(2番目のデータと同じような形式が続きます) 9]
該当のソースコード
java
1public static String getName(String uuid) { 2 try { 3 String urlstr = new String("https://api.mojang.com/user/profiles/"+uuid.replace("-", "")+"/names"); 4 URL url = new URL(urlstr); 5 InputStream in = url.openStream(); 6 ObjectMapper mapper = new ObjectMapper(); 7 JsonNode node = mapper.readTree(in); 8 JsonNode newest = node.get(node.size()-1); 9 System.out.println(newest.get("name")); 10 return newest.get("name").asText();//この行で例外が発生します。 11 } catch (IOException e) { 12 e.printStackTrace(); 13 } 14 }
回答1件
あなたの回答
tips
プレビュー