Heim >Java >javaLernprogramm >Wie analysiere ich eine lokale JSON-Datei aus Assets in eine ListView in Android?
Das Parsen von JSON-Dateien aus lokalen Assets ist eine häufige Aufgabe bei der Android-Programmierung, insbesondere beim Arbeiten mit statischen Daten. So können Sie dies effektiv erreichen:
1. Lesen der JSON-Datei:
public String loadJSONFromAsset() { String json = null; try { InputStream is = getActivity().getAssets().open("formules.json"); int size = is.available(); byte[] buffer = new byte[size]; is.read(buffer); is.close(); json = new String(buffer, "UTF-8"); } catch (IOException ex) { ex.printStackTrace(); return null; } return json; }
Diese Methode öffnet die Datei „formules.json“ aus dem Assets-Ordner, liest ihren Inhalt in einen Puffer und gibt die resultierende JSON-Zeichenfolge zurück.
2. Parsen des JSON-Strings:
try { JSONObject obj = new JSONObject(loadJSONFromAsset()); JSONArray m_jArry = obj.getJSONArray("formules"); ArrayList<HashMap<String, String>> formList = new ArrayList<>(); HashMap<String, String> m_li; for (int i = 0; i < m_jArry.length(); i++) { JSONObject jo_inside = m_jArry.getJSONObject(i); String formula_value = jo_inside.getString("formule"); String url_value = jo_inside.getString("url"); //Add values to the ArrayList as follows: m_li = new HashMap<>(); m_li.put("formule", formula_value); m_li.put("url", url_value); formList.add(m_li); } } catch (JSONException e) { e.printStackTrace(); }
Hier analysieren wir den JSON-String in ein JSONObject. Anschließend durchlaufen wir das Array „formules“ und extrahieren die Werte „formule“ und „url“. Wir speichern diese Werte in einer HashMap und fügen sie einer ArrayList hinzu.
3. Anzeigen der Daten in einer ListView:
Sobald Sie die Daten in einer ArrayList haben, können Sie einen ArrayAdapter verwenden, um sie in einer ListView anzuzeigen. Erstellen Sie einen ArrayAdapter mit dem entsprechenden Kontext und Layout und legen Sie ihn auf Ihre ListView fest.
Das obige ist der detaillierte Inhalt vonWie analysiere ich eine lokale JSON-Datei aus Assets in eine ListView in Android?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!