2014-12-01 4 views
0

Я пытаюсь разобрать этот ответ Json. По какой-то странной причине он не работает. Пожалуйста, несите меня. Я действительно сосать Json.Parse Simple Json response

Here is the Url am trying to parse:

Это код я использую для синтаксического анализа:

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

     final String TAG = "AsyncTaskParseJson.java"; 

    // set your json string url here 


    @Override 
    protected void onPreExecute() { 

     Toast.makeText(getActivity(), "started", Toast.LENGTH_SHORT).show(); 

    } 

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

     String str = ""; 
     HttpResponse response; 
     HttpClient myClient = new DefaultHttpClient(); 
     HttpPost myConnection = new HttpPost("http://gdata.youtube.com/feeds/api/videos/iS1g8G_njx8?v=2&alt=jsonc"); 

     try { 
      response = myClient.execute(myConnection); 
      str = EntityUtils.toString(response.getEntity(), "UTF-8"); 

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


     try{ 
      JSONObject myJson = new JSONObject(str); 

      String grande = myJson.getString("title"); 
      Toast.makeText(getActivity(), ""+grande, Toast.LENGTH_SHORT).show(); 


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



     return null; 
     } 

     @Override 
     protected void onPostExecute(String strFromDoInBg) { 

     Toast.makeText(getActivity(), "done", Toast.LENGTH_SHORT).show(); 

     } 
    } 

я просто нужно разобрать название и Descrption только. спасибо

+0

Что такое Exce ption вы получаете –

+0

, какую ошибку вы получили во время разбора? –

ответ

2

Его кажется, что вы не разобран правильно

Измени попробовать блок со следующим кодом

try{ 
      JSONObject myJson = new JSONObject(str); 
      JSONObject entityObject = myJson.getJSONObject("entity"); 

      // Parsing title 
      JSONOBject titleObject = entityObject.getJSONObject("title"); 
      String grande = titleObject.getString("$t"); 

      // Do the same for Description as well (Like above two line) 

      Toast.makeText(getActivity(), ""+grande, Toast.LENGTH_SHORT).show(); 


     } catch (JSONException e) { 
      e.printStackTrace(); 
    } 
0

Я думаю, что ваше сообщение тоста (в doInBackground) создает проблемы, попробуйте прокомментировать это, а затем проверьте!

Кроме того, лучшие практики, чтобы отправить ответ на onPostExecute в качестве аргумента, а затем разобрать JSON в onPostExecute

+0

@Srinivas B: я правильно разбираю Json?. Если я уверен, что правильно разбирал его, я попробую ваше решение. –

+0

@DonnieIbiyemi также проверить мой слегка отредактированный ответ :) –

0

попробовать, как это,

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

     String str = ""; 
     HttpResponse response; 
     HttpClient myClient = new DefaultHttpClient(); 
     HttpPost myConnection = new HttpPost("http://gdata.youtube.com/feeds/api/videos/iS1g8G_njx8?v=2&alt=jsonc"); 

     try { 
      response = myClient.execute(myConnection); 
      str = EntityUtils.toString(response.getEntity(), "UTF-8"); 
     } catch (ClientProtocolException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     return str; 
     } 

     @Override 
     protected void onPostExecute(String result) { 

     try{ 
      JSONObject myJson = new JSONObject(result); 

      JSONObject entry = results.getJSONObject("entry"); 
      JSONObject grande = results.getJSONObject("title"); 
      String title = grande.getString("$t"); 
      Toast.makeText(getActivity(), title, Toast.LENGTH_SHORT).show(); 


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

     Toast.makeText(getActivity(), "done", Toast.LENGTH_SHORT).show(); 

     }