2017-02-23 9 views
-1

JSONファイルから情報を読み込もうとしています。私はAndroidアプリケーションで使用します(私はAndroidスタジオを使用しています)。コードは、ファイル全体を読み込んで保存することができますが、必要な情報を選択することはできないようです。これは私が読むことを試みているJSONファイルです:http://www.ime.ntnu.no/api/course/tma4100。 誰でも私が間違っていることを教えてもらえますか? ありがとうございます。ASYNCを使用したJSONファイルの読み込み

public class JSONTask extends AsyncTask<String,String,String> { 

private Fag nyttFag; 

@Override 
protected String doInBackground(String... params) { 

    HttpURLConnection urlConnection = null; 
    BufferedReader reader = null; 


    try { 
     URL url = new URL(params[0]); 
     urlConnection = (HttpURLConnection) url.openConnection(); 
     urlConnection.connect(); 

     //read from API 

     InputStream stream = urlConnection.getInputStream(); 
     reader = new BufferedReader(new InputStreamReader(stream)); 


     StringBuffer buffer = new StringBuffer(); 

     String line = ""; 
     while ((line = reader.readLine()) != null) { 
      buffer.append(line); 
     } 

     String finalJson = buffer.toString(); 

     //Get objekt course from the whole API 
     JSONObject parentObject = new JSONObject(finalJson); 
     JSONObject course = parentObject.getJSONObject("course"); 

     StringBuffer finalBufferedData = new StringBuffer(); 
     //JSONObject finalObject = parentObject2.getJSONObject(0); 
     String coursename = course.getString("name"); 
     String code = course.getString("code"); 
     System.out.println(coursename); 
     finalBufferedData.append(code + "-" + coursename + "\n"); 
     nyttFag = new Fag(code,coursename); 

     return finalBufferedData.toString(); 

    } catch (MalformedURLException e) { 
     e.printStackTrace(); 
    } catch (IOException ex) { 
     ex.printStackTrace(); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } finally { 
     if (urlConnection != null) { 
      urlConnection.disconnect(); 
     } 
     try { 
      if (reader != null) { 
       reader.close(); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
    return null; 
} 

@Override 
protected void onPostExecute(String result) { 
    super.onPostExecute(result); 
    MainActivityProfessor.fagData.setText(result); 
    if (!navnPåFag.contains(nyttFag.name)) { 
     navnPåFag.add(nyttFag.name); 
    } 
} 

}

答えて

0

あなたはJSONが正しくダウンロードされている、私はライン上でいくつかのdebbugingをお勧めしたいことを証明する必要があります。

JSONObject parentObject = new JSONObject(finalJson); 

finalJsonが正常であるかどうかを確認します解析した後、のコースの変数が実際にJSONObjectになっている場合。

関連する問題