从本地资源解析 JSON 文件是 Android 编程中的常见任务,尤其是在工作时与静态数据。以下是有效实现这一目标的方法:
1.读取 JSON 文件:
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; }
此方法从资产文件夹中打开“formules.json”文件,将其内容读入缓冲区,然后返回生成的 JSON 字符串。
2。解析 JSON 字符串:
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(); }
这里,我们将 JSON 字符串解析为 JSONObject。然后,我们迭代“formules”数组并提取“formule”和“url”值。我们将这些值存储在 HashMap 中并将其添加到 ArrayList。
3.在 ListView 中显示数据:
一旦将数据存储在 ArrayList 中,就可以使用 ArrayAdapter 将其显示在 ListView 中。使用适当的上下文和布局创建一个 ArrayAdapter,并将其设置到您的 ListView。
以上是如何在 Android 中将 Assets 中的本地 JSON 文件解析为 ListView?的详细内容。更多信息请关注PHP中文网其他相关文章!