如何使用org.json包获取Java中JSON对象内的数组?
使用org.json包提取JSON中arguments节点下的数组
你已经能熟练用org.json获取fileName和numberOfArguments这类基础字段了,要拿到arguments下的a0、a1数组其实逻辑很连贯,分两步就搞定:
首先,arguments本身是一个嵌套的JSON对象,所以得先从主JSON里把它取出来;然后再从这个对象里提取对应的数组。直接看代码示例更清楚:
假设你已经有了主JSONObject json(就是你用来获取fileName的那个对象),代码可以这么写:
// 第一步:获取嵌套的arguments对象 JSONObject argumentsObj = json.getJSONObject("arguments"); // 第二步:分别提取a0和a1数组 JSONArray a0Array = argumentsObj.getJSONArray("a0"); JSONArray a1Array = argumentsObj.getJSONArray("a1");
如果之后需要遍历数组里的元素,也可以用JSONArray提供的方法:
比如遍历a0的字符串元素:
for (int i = 0; i < a0Array.length(); i++) { String item = a0Array.getString(i); // 这里可以处理每个元素,比如打印或者存入集合 System.out.println("a0元素:" + item); }
遍历a1的整数元素:
for (int i = 0; i < a1Array.length(); i++) { int item = a1Array.getInt(i); System.out.println("a1元素:" + item); }
本质上和你之前用get()、getInt()是一个思路,只是针对嵌套对象用getJSONObject(),针对数组用getJSONArray()就好。
内容的提问来源于stack exchange,提问作者khaled rimawi
相关产品推荐
相关产品推荐

