在 Java 開發中,List 集合與 JSON 格式的相互轉換是常見需求。雖然手動解析也能實現,但引入成熟的第三方庫能大幅減少代碼量並提高可靠性。本文記錄使用 json-lib 庫進行 List 與 JSON 互轉的完整流程與注意事項。
使用 json-lib 需要引入以下 6 個 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
}
}
}
新專案建議考慮 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>>(){});