Java JSONArray 转 List 的几种方法

在 Java 中处理 JSON 数组时,常需要把 JSONArray 转成 List。不同的 JSON 库写法不同,下面按库分。

一、org.json(JSON-java)

JSONArray jsonArray = new JSONArray("[\"a\",\"b\",\"c\"]");
List<String> list = new ArrayList<>();
for (int i = 0; i < jsonArray.length(); i++) {
    list.add(jsonArray.getString(i));
}

二、FastJSON

JSONArray jsonArray = JSON.parseArray("[\"a\",\"b\",\"c\"]");
List<String> list = jsonArray.toJavaList(String.class);
// 或
List<String> list2 = JSON.parseArray(json, String.class);

三、Gson

String json = "[\"a\",\"b\",\"c\"]";
Type type = new TypeToken<List<String>>(){}.getType();
List<String> list = new Gson().fromJson(json, type);

四、Jackson

ObjectMapper mapper = new ObjectMapper();
List<String> list = mapper.readValue(json, new TypeReference<List<String>>(){});

五、复杂对象转换

如果是对象数组,把 String.class 换成目标类即可:

List<User> users = JSON.parseArray(json, User.class);  // FastJSON
List<User> users2 = new Gson().fromJson(json, new TypeToken<List<User>>(){}.getType());  // Gson

六、选型建议

FastJSON 性能最好但有安全漏洞历史,需用最新版;Gson 稳定通用;Jackson 功能最全;org.json 最轻量。团队已有统一库时优先复用,避免混用。