2015-12-07 2 views
2

меня в этом есть JSON следующий linkКак я могу конвертировать JSON в объект JAVA?

Я пытаюсь преобразовать его в объект Java, но я не смог загрузить изображение.

вот мой код

public class MainActivity extends ActionBarActivity { 
    // Declare Variables 
    JSONObject jsonobject; 
    JSONArray jsonarray; 
    ListView listview; 
    ListViewAdapter adapter; 
    ProgressDialog mProgressDialog; 
    ArrayList<HashMap<String, String>> arraylist; 
    static String url = "https://www.googleapis.com/youtube/v3/search?part=snippet&maxResult=30&q=natok+bangla+mosharrof+karim&key=AIzaSyCR40QlsuX0aFfBV-wEPDsH_jxna1tDFRA"; 

    static String VIDEO_ID = "videoId"; 
    static String TITLE = "title"; 
    //static String DESCRIPTION = "description"; 
    static String THUMBNAILS = "http://img.youtube.com/vi/\" + videoId + \"/hqdefault.jpg\""; 

    @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 

      String query = "bangla natok 2015"; 
      query = query.replace(" ", "+"); 
      try { 
       query = URLEncoder.encode(query, "utf-8"); 
      } catch (UnsupportedEncodingException e) { 
       // TODO Auto-generated catch block 
       //e.printStackTrace(); 
      } 

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

      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")); 
        map.put ("img","http://img.youtube.com/vi/" + VIDEO_ID + "/hqdefault.jpg"); 

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

        //map.put("description", jsonObjSnippet.getString("description")); 
        // map.put("flag", jsonobject.getString("flag")); 




        // 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(); 
     } 
    } 

Все мне нужно я получить показать здесь, но я не могу показать изображение here.I не может найти & получить любую error.is там любую проблему с преобразование JSON в объект java?

+0

Что делает 'e.getMessage()' print? Измените свой вопрос и опубликуйте сообщение (или, предпочтительно, трассировку стека). –

+0

Я не могу найти какое-либо сообщение об ошибке @Little Child –

ответ

2

Его лучше использовать GSON, в этом случае он преобразует вашу строку json в объект java без ручной работы.

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

compile 'com.google.code.gson:gson:1.7.2' 

Теперь используйте этот код, чтобы преобразовать строку JSON в объект Java

POJOClass obj = gson.fromJson(json, POJOClass.class) 

Также вы можете использовать этот сайт, чтобы преобразовать JSON в POJO класса без создавая его вручную

http://www.jsonschema2pojo.org/

Дайте мне знать в случае выпуска

+0

Я хочу только изображение, как я могу получить может у, пожалуйста, объясните кратко? –

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