首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

JSON 數組解析實戰:從字符串到對象的高效遍歷技巧

     編輯:Java 綜合教學

JSON 字符串數組解析核心方案

在實際開發中,接口常返回 字符串形式的 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"));
            }
        }
    }
}

關鍵點解析

  • JSONArray.fromObject():自動識別字符串結構,轉換為可操作的數組對象
  • getJSONObject(index):按索引安全獲取元素,避免類型轉換異常
  • get(key):提取指定鍵值,返回 Object 需自行轉型
  • 兩種遍歷等價:迭代器語義更清晰,索引遍歷便於控制順序

進階提示

  • 若字段可能缺失,建議使用 optString(key) / optInt(key) 避免 NPE
  • 大數據量場景考慮流式解析(如 Jackson Streaming API)降低內存佔用
  • 現代項目推薦使用 Jackson 或 Gson,功能更強、性能更優

常見坑點

  1. 字符串未轉義導致解析失敗 → 確保雙引號正確轉義
  2. 數組元素非對象結構(如純值數組) → 需用 getString(i) 等對應方法
  3. 編碼不一致導致中文亂碼 → 統一使用 UTF-8
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved