jsonarray是数组,通常情况下,一个数组可以由多个对象构成,也就是一个jsonobject。那jsonarray怎么转成listmap?接下来我们就来给大家讲解一下这方面的内容。
直接转是转不了的 需要先得到jsonArray循环得到jsonObject 然后保存到map 再添加到list
List < map > list = new ArrayList < map > (); JSONArray jsonArr = JSONObject.fromObject(jsonStr) .getJSONArray("data"); if (jsonArr != null && jsonArr.size() > 0) { for (int i = 0; i < jsonarr.size(); i++) { < p = "" > JSONObject jsonObj = (JSONObject) jsonArr.get(i); Mapmap = new HashMap(); for (Iterator iter = jsonObj.keys(); iter.hasNext();) { String key = (String) iter.next(); String value = jsonObj.get(key) .toString(); map.put(key, value); } list.add(map); }
jsonarray怎么遍历?
第一种(java8):遍历JSONArray 拼接字符串
public static void main(String[] args) { JSONArray jSONArray = new JSONArray(); JSONObject jb = new JSONObject(); jb.put("id", 1); jb.put("name", "s"); jSONArray.add(jb); JSONObject j1 = new JSONObject(); j1.put("id", 2); j1.put("name", "s"); jSONArray.add(j1); StringBuffer sBuffer = new StringBuffer(); jSONArray.stream() .forEach(jsonobejct - > arrayIdToString((JSONObject) jsonobejct, sBuffer)); System.out.println(sBuffer.toString()); } private static StringBuffer arrayIdToString(JSONObject jsonobejct , StringBuffer sBuffer) { return sBuffer.append(jsonobejct.getInteger("id")) .append(","); }
第二种:for循环遍历
public static void f2(JSONArray ja) { for (int i = 0; i < ja.size(); i++) { System.out.println(ja.getJSONObject(i) .get("id")); } }
PS:遍历JsonObject
JSONObject jsonObject = new JSONObject(s);
然后用Iterator迭代器遍历取值,建议用反射机制解析到封装好的对象中
JSONObject jsonObject = new JSONObject(jsonString); Iterator iterator = jsonObject.keys(); while (iterator.hasNext()) { key = (String) iterator.next(); value = jsonObject.getString(key); }
这样我们就完成了jsonarray遍历,有两种方法可以遍历,大家选择适合一种进行遍历就行了!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。
推荐阅读: