在實際開發中,接口常返回 字符串形式的 JSON 數組,例如:[{"name":"zhangsan"},{"age":"18"}]。本文介紹基於 json-lib 庫的高效解析與遍歷方法,助你快速提取所需字段值。
需引入 json-lib-2.4-jdk15.jar 及其依賴(ezmorph、commons-lang 等)。Maven 坐標:
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
public class JsonArrayParser {
public static void main(String[] args) {
// 模擬接口返回的字符串數組
String jsonStr = "[{\"name\":\"zhangsan\"},{\"age\":\"18\"}]";
// 1. 字符串轉 JSONArray
JSONArray jsonArray = JSONArray.fromObject(jsonStr);
// 2. 非空校驗
if (jsonArray.size() > 0) {
// 方式一:迭代器遍歷(推薦)
for (Iterator it = jsonArray.iterator(); it.hasNext(); ) {
JSONObject obj = (JSONObject) it.next();
System.out.println("name: " + obj.get("name"));
System.out.println("age: " + obj.get("age"));
}
// 方式二:索引遍歷
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
System.out.println("name: " + obj.get("name"));
System.out.println("age: " + obj.get("age"));
}
}
}
}
optString(key) / optInt(key) 避免 NPEgetString(i) 等對應方法