gpt4 book ai didi

android - 在 Android 中解析 JSON 的问题

转载 作者:行者123 更新时间:2023-11-30 02:33:36 25 4
gpt4 key购买 nike

我是 android 编程的新手。我的项目有一些严重的问题。我一直在学习一些教程,但我仍然找不到正确的答案。当我在 AVD 模拟器中运行我的项目时,它正在运行,但只显示一个空白屏幕,没有我尝试解析的任何 JSON。

因此需要解析此示例 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,它只显示了一半。(已编辑)

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

我很抱歉问了这么长的问题。我希望我能找到解决问题的方法。如果代码有任何问题,请告诉我。先谢谢了。

最佳答案

尝试从您的字符串末尾删除“”,然后解析您的 JSON。最后,您可以使用可用的 json 解析器,例如 gson(code.google.com/p/google-gson/) 和 jackson(jackson.codehaus.org/Download)。

关于android - 在 Android 中解析 JSON 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26955131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com