2015-12-13 2 views
0

У меня есть JSON из API YouTube.Получить URL-адрес видео от Youtube API

Вот мой JSON в этом link

У меня возникают проблемы, чтобы получить изображение из него. Мне не удалось показать изображение.

Я пытаюсь для него около 10дней, но я не могу решить this.Can Любой, пожалуйста, решить эту проблему из

вот мой полный код:

public class MainActivity extends ActionBarActivity { 
// Declare Variables 
JSONObject jsonobject; 
JSONArray jsonarray; 
ListView listview; 
ListViewAdapter adapter; 
ProgressDialog mProgressDialog; 
ArrayList<HashMap<String, String>> arraylist; 
static String imgURL = "https://i.ytimg.com/vi/uU-uRElXM3A/default.jpg"; 

static String VIDEO_ID = "videoId"; 
static String TITLE = "title"; 
//static String DESCRIPTION = "description"; 
static String THUMBNAILS = "thumbnails"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // Get the view from listview_main.xml 
    setContentView(R.layout.listview_main); 
    // Execute DownloadJSON AsyncTask 
    new DownloadJSON().execute(); 
} 

// DownloadJSON AsyncTask 
private class DownloadJSON extends AsyncTask<Void, Void, Void> { 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     // Create a progressdialog 
     mProgressDialog = new ProgressDialog(MainActivity.this); 
     // Set progressdialog title 
     mProgressDialog.setTitle("Your Youtube Video is"); 
     // Set progressdialog message 
     mProgressDialog.setMessage("Loading..."); 
     mProgressDialog.setIndeterminate(false); 
     // Show progressdialog 
     mProgressDialog.show(); 
    } 

    @Override 
    protected Void doInBackground(Void... params) { 
     // Create an array 
     arraylist = new ArrayList<HashMap<String, String>>(); 

     // Retrieve JSON Objects from the given URL address 



     jsonobject = JSONfunctions.getJSONfromURL("https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&q=natok+2015&maxResults=50&key=AIzaSyCojCp66RLS9OY8hOwnW0UWLNdC56z24Os"); 

     try { 
      // Locate the array name in JSON 
      JSONArray jsonarray = jsonobject.getJSONArray("items"); 

      for (int i = 0; i < jsonarray.length(); i++) { 
       HashMap<String, String> map = new HashMap<String, String>(); 
       jsonobject = jsonarray.getJSONObject(i); 
       // Retrive JSON Objects 
       JSONObject jsonObjId = jsonobject.getJSONObject("id"); 
       map.put("videoId", jsonObjId.getString("videoId")); 

       JSONObject jsonObjSnippet = jsonobject.getJSONObject("snippet"); 
       map.put("title", jsonObjSnippet.getString("title")); 

       //JSONObject jsonObjThumbnail = jsonObjSnippet.getJSONObject("thumbnails"); 
       // String imgURL = jsonobject.getJSONObject("thumbnails").getString("url"); //use "medium/high" instead of default as required. 
       JSONObject jsonObjThumbnail = jsonobject.getJSONObject("thumbnails"); 
       String imgURL = jsonobject.getJSONObject("default").getString("url"); 









       // Set the JSON Objects into the array 
       arraylist.add(map); 
      } 
     } catch (JSONException e) { 
      Log.e("Error", e.getMessage()); 
      e.printStackTrace(); 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void args) { 
     // Locate the listview in listview_main.xml 
     listview = (ListView) findViewById(R.id.listview); 
     // Pass the results into ListViewAdapter.java 
     adapter = new ListViewAdapter(MainActivity.this, arraylist); 
     // Set the adapter to the ListView 
     listview.setAdapter(adapter); 
     // Close the progressdialog 
     mProgressDialog.dismiss(); 
    } 
} 
+0

Возможный дубликат [Как разобрать JSON в Java] (http://stackoverflow.com/questions/2591098/how-to -parse-json-in-java) –

+0

см. обновленный anser, это поможет вам, конечно –

ответ

3

, чтобы получить URL изображения из JSON, пожалуйста, используйте код: после строки JSONObject jsonObjSnippet = jsonobject.getJSONObject("snippet");

JSONObject jsonObjThumbnail = jsonobject.getJSONObject("thumbnails"); 
String imgURL = jsonObjThumbnail.getJSONObject("default").getString("url");//use "medium/high" instead of default as required. 
map.put("url", imgURL); 

UPDATE: вы получите imgURL в виде строки; Например: https://i.ytimg.com/vi/uU-uRElXM3A/default.jpg

Я думаю, что вы забыли добавить ImageUrl на «карте»,

+0

Что такое imgURL и что такое значение imgURL –

+0

, просьба описать полный код. –

+0

Я нашел 12-14 17: 56: 27.913 6946-6966/amit.jsonparsewithimage E/Ошибка: Нет значения для миниатюр этой ошибки –

0

Чтобы разобрать ваш JSON вы должны сначала определить JSONArray объект, выполнив:

JSONArray jsonArray = new JSONArray(jsonArrayString); 

Затем вам нужно цикл на протяжении всего массива JSON, чтобы построить один:

JSONArray jsonArray = jsnobject.getJSONArray("array-key"); 
for (int i = 0; i < jsonArray.length(); i++) { 
     JSONObject newObj = jsonArray.getJSONObject(i); 
} 
+0

Я не могу показать только изображение, как я могу это сделать –

+0

Говоря изображения, я думаю, вы имеете в виду миниатюры, поэтому, если вы анализируют ваш json все, что вам нужно сделать, это получить массив элементов, а там - фрагмент и миниатюры. –

+0

может у вас доказать пример для меня –

Смежные вопросы