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 最轻量。团队已有统一库时优先复用,避免混用。