2017-09-27 7 views
1

Ich versuche, JsonObject von DownloadTask zu erhalten. Aber ich bekomme Array-Werte, die in downloadData zusammen mit JsonObjects in JsonObjectText gespeichert sind. Schauen Sie sich unten in Logs an. Warum mein Code Array mit JsonObject zurückgeben, aber ich protokolliere nur den Inhalt der JsonObject-Variable.Fehler beim Analysieren von JsonObject

hier Bild von Logs:

Logs

Hier ist mein Code:

package com.example.smarpitsingh.webview; 

public class MainActivity extends AppCompatActivity { 

    String name = "Result"; 
    String result = "",downloadedData,jsonObjectText; 
    URL url; 
    HttpURLConnection httpURLConnection; 
    InputStream inputStream; 
    InputStreamReader streamReader; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     DownloadTask downloadTask = new DownloadTask(); 
     try { 
      downloadedData = downloadTask.execute("https://hacker-news.firebaseio.com/v0/topstories.json?print=pretty").get(); 

      JSONArray jsonArray = new JSONArray(downloadedData); 

      for (int i=1; i<20; i++){ 

       DownloadTask jasonTask = new DownloadTask(); 
       jsonObjectText = jasonTask.execute("https://hacker-news.firebaseio.com/v0/item/"+jsonArray.getString(i)+".json?print=pretty").get(); 

       Log.i(name,jsonObjectText); 
      } 


     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } catch (ExecutionException e) { 
      e.printStackTrace(); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 

    public class DownloadTask extends AsyncTask<String,Void,String>{ 

     @Override 
     protected String doInBackground(String... urls) { 
      try { 
       url = new URL(urls[0]); 
       httpURLConnection = (HttpURLConnection)url.openConnection(); 
       inputStream = httpURLConnection.getInputStream(); 
       streamReader = new InputStreamReader(inputStream); 

       int data = streamReader.read(); 
       while (data != -1){ 
        char count = (char)data; 
        result += count; 
        data = streamReader.read(); 
       } 

      } catch (MalformedURLException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 


      return result; 
     } 
    } 
`}` 

Antwort

1

Weil Sie haben ein Array in Ihrem json bekommen: enter image description here

Verwandte Themen