2017-01-08 27 views
-2

オープンソースプロジェクトを持つgithubが見つかりましたが、破損しています。 、私は配列にそれを変更しようとすると、ヌルJSONオブジェクトではありません:null

I:未JSONオブジェクト:それは私がスレッド「メイン」java.lang.IllegalStateExceptionでエラー例外を取得https://api.randomuser.me/?nat=gb

のオフJSONを取得しようとします配列ではないというエラーを取得します。何がありますか?

String json = readUrl(RANDGEN_URL); 
     JsonParser jsonParser = new JsonParser(); 
     JsonObject firstNameObject = jsonParser.parse(json) 
       .getAsJsonObject().getAsJsonArray("results").get(0) 
       .getAsJsonObject().getAsJsonObject("name"); 
     String firstNameString = firstNameObject.get("first").getAsString(); 

     JsonObject lastNameObject = jsonParser.parse(json) 
       .getAsJsonObject().getAsJsonArray("results").get(0) 
       .getAsJsonObject().getAsJsonObject("name"); 
     String lastNameString = lastNameObject.get("last").getAsString(); 

     Random randMail = new Random(); 
     int setMail = randMail.nextInt(90) + 10; 
     String mail = firstNameString + "." + lastNameString + "" + setMail + "@gmail.com"; 

     JsonObject usernames = jsonParser.parse(json) 
       .getAsJsonObject().getAsJsonArray("results").get(0) 
       .getAsJsonObject().getAsJsonObject("login"); 
     String user = usernames.get("username").getAsString(); 

     if (user.length() > 12) { 
      Random randNum = new Random(); 
      int setNum = randNum.nextInt(90) + 10; 
      user = user.substring(0, Math.min(user.length(), 10)) + setNum; 
     } 

答えて

-2

どのライブラリをお使いですか?

// com.alibaba.fastjson 

    String res = o.getJSONArray("results").getJSONObject(0).getJSONObject("name").getString("title"); 
    System.out.println(res); 

out:# mr 
+0

Gson 'のSystem.out.println(jsonParser.parse(値).getAsJsonObject()。( "結果")を取得する。getAsJsonArray()。得る(0).getAsJsonObject()。「(取得name ")。getAsJsonObject()。get(" first ")。getAsString());それは働く。私はいくつかの場合、空の配列を取得するか、要求されたキーが存在しないと思います。 'getAsJsonArray()。size()'& 'getAsJsonObject()。has(" results ")'など。 – user993533

関連する問題