2014-11-16 3 views
1

Я новичок в программировании для Android. У меня есть серьезные проблемы с моим проектом. Я следую некоторому учебнику, но я до сих пор не могу найти правильный ответ. Когда я запускаю свой проект в эмуляторе AVD, он работает, но просто показывает пустой экран без какого-либо JSON, который я пытаюсь проанализировать.Проблемы с разбором JSON в Android

Так что этот пример JSON должны быть разобраны (под редакцией и действует в соответствии jsonlint)

[{"id":"119","judul":"Daftar Penerima Beasiswa Bidik Misi","kategori":"beasiswa","published":"2014-09-17 06:27:19","isi":"Silhkan klik link di bawah ini : Penerima Beasiswa Bidik Misi Terima kasih."},{"id":"118","judul":"Penerima Beasiswa Toyota dan Astra","kategori":"beasiswa","published":"2014-09-17 06:26:48","isi":"Kepada mahasiswa yang namanya tercantum dalam\u00a0link berikut ini Mohon segera datang ke kantor bikem untuk realisasi beasiswa Toyota dan Astra Terima kasih."},{"id":"117","judul":"BAKTI SOSIAL TANAM POHON DI KAMPUS III","kategori":"beasiswa","published":"2014-09-17 06:26:18","isi":"Seluruh penerima beasiswa UKSW diundang hadir (wajib) dalam acara tanam pohon pada hari Sabtu, 16 November 2012 jam 06.30 di kampus III. Mahasiswa langsung menuju ke kampus III desa blotongan dengan membawa air untuk menyiram, alat menanam, penyangga bibit dari bambu (tinggi 1 M dan lebar 4 cm), rafia, label nama dilapis plastik (10 cm x 12 cm) (lubang sudah disediakan) daftar ketua kelompok dan nomor HP dapat dilihat di papan pengumuman, info beasiswa, dan web."} 

Это мой JSONParser класс

public class JSONParser { 

static InputStream is = null; 
static JSONObject jObj = null; 
static String json =""; 

public JSONParser() { 

} 
public JSONObject makeHttpRequest(String url, String method, List<NameValuePair> params) { 

    try { 
      DefaultHttpClient httpClient = new DefaultHttpClient(); 
      String paramString = URLEncodedUtils.format(params, "utf-8"); 
      url += "?" + paramString; 
      HttpGet httpGet = new HttpGet(url); 

      HttpResponse httpResponse = httpClient.execute(httpGet); 
      HttpEntity httpEntity = httpResponse.getEntity(); 
      //String json = EntityUtils.toString(httpEntity); 
      //System.out.println(json); 
      is = httpEntity.getContent(); 

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

    try { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8"), 8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
        sb.append(line + "\n"); 
     } 
     is.close(); 
     json = sb.toString(); 
     Log.i("String Builder...", json); 
    } catch (Exception e) { 
     Log.e("Buffer Error", "Error converting result " + e.toString()); 
    } 

    try { 
     jObj = new JSONObject(json); 
    } catch (JSONException e) { 
     Log.e("JSON Parser", "Error Parsing Data" + e.toString()); 
    }  
    return jObj; 
} 
} 

Это мой AksesServerActivity класс

public class AksesServerActivity extends ListActivity { 

private ProgressDialog pDialog; 

JSONParser jParser = new JSONParser(); 

ArrayList<HashMap<String, String>> daftar_pengumuman; 

private static String link_url = "http://10.0.2.2/Pengumuman/get_all_pengumuman.php"; 

private static final String PNG_ID = "id"; 
private static final String PNG_JUDUL = "judul"; 
private static final String PNG_KATEGORI = "kategori"; 
private static final String PNG_PUBLISHED = "published"; 
private static final String PNG_ISI = "isi"; 

JSONArray pengumuman = null; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    daftar_pengumuman = new ArrayList<HashMap<String, String>>(); 

    new LoadAllPengumuman().execute(); 

    ListView lv = getListView(); 

    lv.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      String kode = ((TextView) view.findViewById(R.id.kode)).getText().toString(); 

      Intent in = new Intent(getApplicationContext(), DetailAksesServer.class); 
      in.putExtra(PNG_ID, kode); 
      startActivity(in); 
     } 
    }); 
} 

    class LoadAllPengumuman extends AsyncTask<String, String, String> { 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      pDialog = new ProgressDialog(AksesServerActivity.this); 
      pDialog.setMessage("Loading Pengumuman. Harap Tunggu . . ."); 
      pDialog.setIndeterminate(false); 
      pDialog.setCancelable(false); 
      pDialog.show(); 
     } 

     protected String doInBackground(String... args){ 
      //JSONParser jParser = new JSONParser(); 

      List<NameValuePair> params = new ArrayList<NameValuePair>(); 
      JSONObject jObject = jParser.makeHttpRequest(link_url, "GET", params); 

      Log.d("Pengumuman:", "> " +jObject); 

      try { 
       JSONArray jArray = new JSONArray(args); 
       //pengumuman = jObject.getJSONArray(PNG_ISI); 

       for(int i = 0; i < jArray.length(); i++) { 
        JSONObject a = jArray.getJSONObject(i); 

        String id = a.getString(PNG_ID); 
        String judul = a.getString(PNG_JUDUL); 
        String kategori = a.getString(PNG_KATEGORI); 
        String published = a.getString(PNG_PUBLISHED); 
        String isi = a.getString(PNG_ISI).substring(0, 100)+"...(baca selengkapnya)"; 

        HashMap<String, String> map = new HashMap<String, String>(); 

        map.put(PNG_ID, id); 
        map.put(PNG_JUDUL, judul); 
        map.put(PNG_KATEGORI, kategori); 
        map.put(PNG_PUBLISHED, published); 
        map.put(PNG_ISI, isi); 

        daftar_pengumuman.add(map); 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

      return null; 
     } 

     protected void onPostExecute(String file_url) { 
      pDialog.dismiss(); 

      runOnUiThread(new Runnable() { 
       public void run() { 
        //public void adapter_listview() { 
         ListAdapter adapter = new SimpleAdapter(AksesServerActivity.this, daftar_pengumuman, 
           R.layout.list_item, 
           new String[] { PNG_JUDUL, PNG_KATEGORI, PNG_PUBLISHED, PNG_ISI, PNG_ID}, new int[] { 
            R.id.judul, R.id.kategori, R.id.published, R.id.isi, R.id.kode }); 
         setListAdapter(adapter); 

       } 
      }); 
     } 
    } 

} 

И это журнал. Вот я не могу найти все мои JSON, просто показать половину из них. (Edited)

11-16 04:58:48.701: D/OpenGLRenderer(1648): Enabling debug mode 0 
11-16 04:58:49.021: W/EGL_emulation(1648): eglSurfaceAttrib not implemented 
11-16 04:58:49.021: I/Choreographer(1648): Skipped 43 frames! The application may be doing too much work on its main thread. 
11-16 04:58:49.311: D/dalvikvm(1648): GC_FOR_ALLOC freed 188K, 7% free 4510K/4820K, paused 42ms, total 43ms 
11-16 04:58:50.321: I/Choreographer(1648): Skipped 55 frames! The application may be doing too much work on its main thread. 
11-16 04:58:52.181: I/String Builder...(1648): [{"id":"119","judul":"Daftar Penerima Beasiswa Bidik Misi","kategori":"beasiswa","published":"2014-09-17 06:27:19","isi":"Silhkan klik link di bawah ini : Penerima Beasiswa Bidik Misi Terima kasih."},{"id":"118","judul":"Penerima Beasiswa Toyota dan Astra","kategori":"beasiswa","published":"2014-09-17 06:26:48","isi":"Kepada mahasiswa yang namanya tercantum dalam\u00a0link berikut ini Mohon segera datang ke kantor bikem untuk realisasi beasiswa Toyota dan Astra Terima kasih."},{"id":"117","judul":"BAKTI SOSIAL TANAM POHON DI KAMPUS III","kategori":"beasiswa","published":"2014-09-17 06:26:18","isi":"Seluruh penerima beasiswa UKSW diundang hadir (wajib) dalam acara tanam pohon pada hari Sabtu, 16 November 2012 jam 06.30 di kampus III. Mahasiswa langsung menuju ke kampus III desa blotongan dengan membawa air untuk menyiram, alat menanam, penyangga bibit dari bambu (tinggi 1 M dan lebar 4 cm), rafia, label nama dilapis plastik (10 cm x 12 cm) (lubang sudah disediakan) daftar ketua kelompok dan nomor HP dapat dilihat di papan pengumuman, info beasiswa, dan web."},{"id":"116","judul":"Pendidikan Agama Kelas H (Dosen : Bpk. Thobias Messakh)","kategori":"lainnya","published":"2014-09-17 06:25:24","isi":"Jadwal Matakuliah Pendidikan Agama Kelas H yang diampu oleh Bpk. Dr. Thobias Messakh ialah Hari Kamis, 16-18 Ruang di ABX102. Mohon untuk diperhatikan. Terima Kasih"},{"id":"115","judul":"Program MAGANG di PT. KIBAR KREASI INDONESIA","kategori":"lainnya","published":"2014-09-17 06:24:57","isi":"Kalau kamu anak muda yang mau bikin perubahan, tertarik bikin proyek yang berguna buat orang banyak, dan mau mencari pengalaman yang bisa memaksimalkan potensi kamu, yuk gabung... PT. KIBAR KREASI INDONESIA menajak Mahasiswa UKSW untuk bergabung dalam program Magang selama 2 Bulan...Syarat &amp; Ketentuan lebih lanjut bisa dilihat di link berikut :\u00a0http:\/\/goo.gl\/erZALk Terima Kasih. Salam, Google Student Ambassador"},{"id":"114","judul":"Panggilan Mahasiswa (DKV)","kategori":"lainnya","published":"2014-09-17 06:24:27","isi":"Panggilan kepada mahasiswa atas nama GLADYS HANNEKE LOUDY NIKIJULUW (692011055) mohon segera menghadap Bp. Michael di kantor pada hari Rabu, 17 September 2014 jam 12.00 WIB. Harap diperhatikan. \u00a0 Terima kasih, \u00a0 Salam, Michael"},{"id":"113","judul":"Panggilan Mahasiswa TI","kategori":"lowongan-pekerjaan","published":"2014-09-17 06:23:42","isi":"Mohon mahasiswa dengan NIM dibawah ini datang ke kantor kaprogdi S1 TI paling lambat hari Rabu, 4 Juni 2014. Berikut daftar NIM nya : - 67 2007 020 (Catur Heru Nugroho) - 67 2007 026 (Arya Berliandi) - 67 2007 156 (Ayu Wulan Sari) - 67 2007 183 (Andreas Vipri Nandha Gunadi S) - 67 2007 289 (Febriyanto Heri S) - 67 2009 003 (Georgius Teniwut) - 67 2010 612 - 67 2011 705 - 67 2011 712 - 67 2012 707 \u00a0 Demikian atas perhatiannya terima kasih \u00a0 Salam, Kaprogdi S1 TI"},{"id":"112","judul":"Undangan Pendidikan Publik (Jurnal Perempuan)","kategori":"lowongan-pekerjaan","published":"2014-09-17 06:23:06","isi":"Untuk info lebih lengkap silahkan klik\u00a0disini."},{"id":"111","judul":"Lowongan Kerja Formulatrix","kategori":"lowongan-pekerjaan","published":"2014-09-17 06:22:33","isi":"Berikut ini lowongan yang sedang dibuka saat ini di Formulatrix, silahkan klik link dibawah ini: RnD Mechanical Design Engineer RnD Mechanical Design Engineer (Internship), special qualification: minimum 6 month - 1 year in the final year of study RnD Junior Electronic Engineer --\u00a0http:\/\/siva-id.jobstreet.com\/_ads\/id\/jobs\/2014\/7\/new\/p\/40\/1319232.htm?17145620 RnD Junior Electronic Engineer (Internship), special qualification: Minimum 6 month - 1 year in the final year of study Firmware Engineer --\u00a0http:\/\/siva-id.jobstreet.com\/_ads\/id\/jobs\/2014\/7\/new\/p\/40\/1319217.htm?17145342 RnD Senior Software Engineer --\u00a0http:\/\/siva-id.jobstreet.com\/_ads\/id\/jobs\/2014\/7\/new\/p\/40\/1319207.htm?17144918 RnD Junior Software Engineer (Internship), special qualification: Minimum 6 month - 1 year in the final year of 
11-16 04:58:52.321: D/dalvikvm(1648): GC_FOR_ALLOC freed 423K, 11% free 4651K/5196K, paused 6ms, total 6ms 
11-16 04:58:52.521: E/JSON Parser(1648): Error Parsing Dataorg.json.JSONException: Value [{"isi":"Silhkan klik link di bawah ini : Penerima Beasiswa Bidik Misi Terima kasih.","judul":"Daftar Penerima Beasiswa Bidik Misi","id":"119","kategori":"beasiswa","published":"2014-09-17 06:27:19"},{"isi":"Kepada mahasiswa yang namanya tercantum dalam link berikut ini Mohon segera datang ke kantor bikem untuk realisasi beasiswa Toyota dan Astra Terima kasih.","judul":"Penerima Beasiswa Toyota dan Astra","id":"118","kategori":"beasiswa","published":"2014-09-17 06:26:48"},{"isi":"Seluruh penerima beasiswa UKSW diundang hadir (wajib) dalam acara tanam pohon pada hari Sabtu, 16 November 2012 jam 06.30 di kampus III. Mahasiswa langsung menuju ke kampus III desa blotongan dengan membawa air untuk menyiram, alat menanam, penyangga bibit dari bambu (tinggi 1 M dan lebar 4 cm), rafia, label nama dilapis plastik (10 cm x 12 cm) (lubang sudah disediakan) daftar ketua kelompok dan nomor HP dapat dilihat di papan pengumuman, info beasiswa, dan web.","judul":"BAKTI SOSIAL TANAM POHON DI KAMPUS III","id":"117","kategori":"beasiswa","published":"2014-09-17 06:26:18"},{"isi":"Jadwal Matakuliah Pendidikan Agama Kelas H yang diampu oleh Bpk. Dr. Thobias Messakh ialah Hari Kamis, 16-18 Ruang di ABX102. Mohon untuk diperhatikan. Terima Kasih","judul":"Pendidikan Agama Kelas H (Dosen : Bpk. Thobias Messakh)","id":"116","kategori":"lainnya","published":"2014-09-17 06:25:24"},{"isi":"Kalau kamu anak muda yang mau bikin perubahan, tertarik bikin proyek yang berguna buat orang banyak, dan mau mencari pengalaman yang bisa memaksimalkan potensi kamu, yuk gabung... PT. KIBAR KREASI INDONESIA menajak Mahasiswa UKSW untuk bergabung dalam program Magang selama 2 Bulan...Syarat &amp; Ketentuan lebih lanjut bisa dilihat di link berikut : http:\/\/goo.gl\/erZALk Terima Kasih. Salam, Google Student Ambassador","judul":"Program MAGANG di PT. KIBAR KREASI INDONESIA","id":"115","kategori":"lainnya","published":"2014-09-17 06:24:57"},{"isi":"Panggilan kepada mahasiswa atas nama GLADYS HANNEKE LOUDY NIKIJULUW (692011055) mohon segera menghadap Bp. Michael di kantor pada hari Rabu, 17 September 2014 jam 12.00 WIB. Harap diperhatikan.   Terima kasih,   Salam, Michael","judul":"Panggilan Mahasiswa (DKV)","id":"114","kategori":"lainnya","published":"2014-09-17 06:24:27"},{"isi":"Mohon mahasiswa dengan NIM dibawah ini datang ke kantor kaprogdi S1 TI paling lambat hari Rabu, 4 Juni 2014. Berikut daftar NIM nya : - 67 2007 020 (Catur Heru Nugroho) - 67 2007 026 (Arya Berliandi) - 67 2007 156 (Ayu Wulan Sari) - 67 2007 183 (Andreas Vipri Nandha Gunadi S) - 67 2007 289 (Febriyanto Heri S) - 67 2009 003 (Georgius Teniwut) - 67 2010 612 - 67 2011 705 - 67 2011 712 - 67 2012 707   Demikian atas perhatiannya terima kasih   Salam, Kaprogdi S1 TI","judul":"Panggilan Mahasiswa TI","id":"113","kategori":"lowongan-pekerjaan","published":"2014-09-17 06:23:42"},{"isi":"Untuk info lebih lengkap silahkan klik disini.","judul":"Undangan Pendidikan Publik (Jurnal Perempuan)","id":"112","kategori":"lowongan-pekerjaan","published":"2014-09-17 06:23:06"},{"isi":"Berikut ini lowongan yang sedang dibuka saat ini di Formulatrix, silahkan klik link dibawah ini: RnD Mechanical Design Engineer RnD Mechanical Design Engineer (Internship), special qualification: minimum 6 month - 1 year in the final year of study RnD Junior Electronic Engineer -- http:\/\/siva-id.jobstreet.com\/_ads\/id\/jobs\/2014\/7\/new\/p\/40\/1319232.htm?17145620 RnD Junior Electronic Engineer (Internship), special qualification: Minimum 6 month - 1 year in the final year of study Firmware Engineer -- http:\/\/siva-id.jobstreet.com\/_ads\/id\/jobs\/2014\/7\/new\/p\/40\/1319217.htm?17145342 RnD Senior Software Engineer -- http:\/\/siva-id.jobstreet.com\/_ads\/id\/jobs\/2014\/7\/new\/p\/40\/1319207.htm?17144918 RnD Junior Software Engineer (Internship), special qualification: Minimum 6 month - 1 year in the final year of study HR Officer -- http:\/\/siva-id.jobstreet.com\/_ads\/id\/jobs\/2014\/7\/new\/p\/40\/1298777.htm?177319 Sof 
11-16 04:58:52.531: D/Pengumuman:(1648): > null 

Я извиняюсь за длинный вопрос, что я просил. Надеюсь, я смогу найти решение своих проблем. Если что-то не так в коде, скажите мне. Спасибо, прежде.

+0

Вы уверены, что ваш образец JSON действителен? Например, вы включили тег
в образец JSON, включили ли он его, когда вы его разобрали? Это вызовет проблемы, если вы попытаетесь разобрать его так: – Javed

+0

попробуйте подтвердить свою json-ссылку в http://jsonlint.com/ –

+0

Хорошо. Я попытаюсь исправить JSON в первую очередь. Спасибо @Javed – Oscar

ответ

1

попробуйте удалить «» с конца ваших строк и затем проанализировать ваш JSON. и, наконец, вы можете использовать json parsers, доступные как gson (code.google.com/p/google-gson/) и jackson (jackson.codehaus.org/Download).

+0

ya @Mohammad - это правильное использование Gson, который является лучшим и способ eaisly разобрать данные json –

+0

вы можете дать некоторую ссылку на учебник с помощью gson? @Mohammad – Oscar

+0

эта ссылка вам очень поможет!;) http: //kylewbanks.com/blog/Tutorial-Android-Parsing-JSON-with-GSON –

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