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

Java List 與 JSON 互轉完整指南:使用 JSON-lib 庫實現高效轉換

     編輯:Java 綜合教學

Java List 與 JSON 互轉完整指南

在 Java 開發中,List 集合與 JSON 格式的相互轉換是常見需求。雖然手動解析也能實現,但引入成熟的第三方庫能大幅減少代碼量並提高可靠性。本文記錄使用 json-lib 庫進行 List 與 JSON 互轉的完整流程與注意事項。

所需依賴包

使用 json-lib 需要引入以下 6 個 JAR 包(版本需兼容):

  • json-lib-x.x.x-jdk15.jar
  • ezmorph-x.x.x.jar
  • commons-lang-x.x.x.jar
  • commons-beanutils-x.x.x.jar
  • commons-collections-x.x.x.jar
  • commons-logging-x.x.x.jar

提示:實際專案建議使用 Maven 或 Gradle 管理依賴,自動解決版本衝突。

核心代碼示例

package com.listandjson;

import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONArray;

public class Test {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("abc");
        list.add("123");

        // List 轉 JSON 字符串
        String json = JSONArray.fromObject(list).toString();
        System.out.println(json); // 輸出:["abc","123"]

        // JSON 字符串轉 List
        JSONArray jsonArray = JSONArray.fromObject(json);
        @SuppressWarnings("unchecked")
        List<String> list2 = (List<String>) JSONArray.toCollection(jsonArray);
        
        for (String item : list2) {
            System.out.println(item); // 依次輸出 abc、123
        }
    }
}

關鍵點解析

  1. JSONArray.fromObject():自動識別集合類型並轉換為 JSON 陣列
  2. JSONArray.toCollection():需強制轉型,建議搭配泛型使用以避免編譯警告
  3. 泛型擦除注意:反序列化時無法保留泛型資訊,需開發者自行確保類型安全

現代替代方案

新專案建議考慮 Jackson 或 Gson,它們效能更好、API 更豐富、社群維護更活躍。例如使用 Jackson:

ObjectMapper mapper = new ObjectMapper();
// List -> JSON
String json = mapper.writeValueAsString(list);
// JSON -> List
List<String> list2 = mapper.readValue(json, new TypeReference<List<String>>(){});
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved