Parsing JSON files from local assets is a common task in Android programming, especially when working with static data. Here's how you can achieve this effectively:
1. Reading the JSON File:
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; }
This method opens the "formules.json" file from the assets folder, reads its contents into a buffer, and returns the resulting JSON string.
2. Parsing the JSON String:
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(); }
Here, we parse the JSON string into a JSONObject. We then iterate through the "formules" array and extract the "formule" and "url" values. We store these values in a HashMap and add it to an ArrayList.
3. Displaying the Data in a ListView:
Once you have the data in an ArrayList, you can use an ArrayAdapter to display it in a ListView. Create an ArrayAdapter with the appropriate context and layout, and set it to your ListView.
The above is the detailed content of How to Parse a Local JSON File from Assets into a ListView in Android?. For more information, please follow other related articles on the PHP Chinese website!