在 Java 开发中,JSON 数据格式被广泛应用于前后端数据交互、接口通信以及配置文件的存储与解析。其中,JSONArray 是处理 JSON 数组的一种常用结构,尤其在使用如 org.json 或 com.alibaba.fastjson 等 JSON 库时非常常见。
然而,在实际开发过程中,我们往往需要将 JSONArray 转换为 Java 中的 List 结构,以便于后续的数据处理和业务逻辑操作。本文将详细介绍 Java 中将 JSONArray 转换为 List 的几种常用方法,涵盖不同 JSON 库的实现方式,并结合示例说明其使用场景与注意事项。
org.json 是一个轻量级的 JSON 处理库,适用于简单的 JSON 操作。它提供了 JSONArray 类,可以方便地将 JSON 数组转换为 Java 的 List。
方法一:直接遍历 JSONArray
可以通过遍历 JSONArray 的每个元素,将其逐个添加到 List 中:
import org.json.JSONArray;
import java.util.ArrayList;
import java.util.List;
public class JsonArrayToList {
public static void main(String[] args) {
String jsonArrayStr = "[\"apple\", \"banana\", \"orange\"]";
JSONArray jsonArray = new JSONArray(jsonArrayStr);
List<String> list = new ArrayList<>();
for (int i = 0; i < jsonArray.length(); i++) {
list.add(jsonArray.getString(i));
}
System.out.println(list); // 输出: [apple, banana, orange]
}
}这种方法适用于简单的字符串或数字类型的数组,若需处理复杂对象,可进一步提取 JSONObject 并转换为自定义对象。
FastJSON 是一个高性能的 JSON 解析库,支持更复杂的 JSON 数据结构处理。通过 JSONArray 可以直接转换为 List,并且支持泛型类型。
方法二:使用 toList() 方法
FastJSON 提供了 toList() 方法,可以直接将 JSONArray 转换为 List:
import com.alibaba.fastjson.JSONArray;
import java.util.List;
public class FastJsonExample {
public static void main(String[] args) {
String jsonArrayStr = "[\"apple\", \"banana\", \"orange\"]";
JSONArray jsonArray = JSONArray.parseArray(jsonArrayStr);
List<String> list = jsonArray.toList(String.class);
System.out.println(list); // 输出: [apple, banana, orange]
}
}此方法简洁高效,特别适合处理结构清晰的 JSON 数组。如果数组中包含的是对象,则可以使用 toJavaList() 方法并指定目标类:
List<User> userList = jsonArray.toJavaList(User.class);Gson 是 Google 提供的一个强大的 JSON 库,支持将 JSON 转换为 Java 对象,同时也支持将 JSONArray 转换为 List。
方法三:通过 fromJson() 方法转换
Gson 不直接提供 JSONArray 类,但可以通过 JsonParser 解析 JSON 字符串后,再将其转换为 List:
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonParser;
import java.util.List;
public class GsonExample {
public static void main(String[] args) {
String jsonArrayStr = "[\"apple\", \"banana\", \"orange\"]";
JsonArray jsonArray = JsonParser.parseString(jsonArrayStr).getAsJsonArray();
Gson gson = new Gson();
List<String> list = gson.fromJson(jsonArray, List.class);
System.out.println(list); // 输出: [apple, banana, orange]
}
}对于复杂对象的数组,也可以使用类似方式,例如:
List<User> userList = gson.fromJson(jsonArray, new TypeToken<List<User>>(){}.getType());Jackson 是另一个广泛使用的 JSON 处理库,功能强大且性能优异。它可以将 JSON 数组转换为 List,并支持多种类型转换。
方法四:使用 readValue() 方法
Jackson 提供了 readValue() 方法,可以直接将 JSON 字符串转换为 List:
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;
public class JacksonExample {
public static void main(String[] args) throws Exception {
String jsonArrayStr = "[\"apple\", \"banana\", \"orange\"]";
ObjectMapper mapper = new ObjectMapper();
List<String> list = mapper.readValue(jsonArrayStr, List.class);
System.out.println(list); // 输出: [apple, banana, orange]
}
}如果 JSON 数组中包含的是对象,也可以通过泛型指定目标类型:
List<User> userList = mapper.readValue(jsonArrayStr, new TypeReference<List<User>>() {});除了上述提到的库之外,还有一些其他的 JSON 处理工具也支持 JSONArray 到 List 的转换,比如:
Jackson:如上所述,支持灵活的类型转换。
JsonNode:Jackson 提供的 JsonNode 接口,可用于更细粒度的 JSON 操作。
Jettison:用于将 JSON 转换为 Java 对象,适用于 RESTful API 开发。
![]()
在 Java 中将 JSONArray 转换为 List 是一种常见的数据处理需求,不同的 JSON 库提供了多种实现方式。从简单字符串数组到复杂对象列表,开发者可以根据项目具体情况选择最合适的转换方法。
声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com
提供多种拟人音色,支持多语言及方言,并可在同一音色下输出多语言内容。系统可自适应语气,流畅处理复杂文本。
Nano Banana(gemini-2.5-flash-image 和 gemini-3-pro-image-preview图像模型)是图像生成与编辑的最佳选择,可集成 Nano Banana API,实现高速预览。
支持通过自然语言文本智能生成高质量短视频。用户只需输入一段描述性文字,即可自动合成画面连贯、风格鲜明、配乐匹配的定制化视频内容。适用于短视频创作、广告预演、社交内容生成、游戏素材制作等场景,为开发者与创作者提供高效、灵活、富有想象力的视频生产新范式。
先进的图像理解和分析能力,它能够快速准确地解析和理解图像内容。无论是自然风景、城市建筑还是复杂的场景与活动,都能提供详细的描述和深入的分析。
根据文本提示(prompt)和图片公网访问链接,编辑原图按照特定风格、场景和氛围感的输出新的图像。广泛应用于电商营销、广告设计、创意灵感等领域,为用户带来高效且个性化的AI图像创作体验。