Java中将ArrayList转为JSON数组传输的核心是用Jackson或Gson序列化为标准JSON字符串(如[{"name":"a"},{"name":"b"}]),再通过HTTP等协议发送;Jackson更推荐,Spring默认支持,Gson则轻量简洁。

Java 中把 ArrayList 转成 JSON 数组传输,核心是用 JSON 库(如 Jackson 或 Gson)将其序列化为字符串,再通过 HTTP、WebSocket 等方式发送。关键不是“转成数组类型”,而是生成标准 JSON 格式的字符串(形如 [{"name":"a"},{"name":"b"}]),接收方自然能解析为数组。
用 Jackson 最常用也最推荐
Jackson 是 Spring 默认的 JSON 处理库,性能好、兼容性强、配置灵活。
- 添加 Maven 依赖(如果没引入):
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.15.3</version> </dependency>
- 简单转换示例:
ObjectMapper mapper = new ObjectMapper(); List<User> list = Arrays.asList(new User("Alice", 25), new User("Bob", 30)); String json = mapper.writeValueAsString(list); // → [{"name":"Alice","age":25},{"name":"Bob","age":30}] - 注意:目标类(如
User)字段需为 public 或有 getter 方法;若字段名要小写或忽略 null,可加注解如@JsonProperty("user_name")或@JsonInclude(Include.NON_NULL)
用 Gson 简洁轻量
适合非 Spring 项目或偏好 Google 工具链的场景。
DMap GL地图JSAPI(dmapgl)开发指南。用于编写、审查、调试 DMap 地图 API 代码,涵盖地图初始化、覆盖物渲染、图层管理、事件处理、控件交互等任务。当用户提及 dmap、dmapgl、jsapi‑gl 或相关地图开发需求时自动触发。
- Maven 依赖:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version> </dependency>
- 转换代码:
Gson gson = new Gson(); String json = gson.toJson(list); // 同样输出标准 JSON 数组字符串
- 支持自定义序列化器(比如处理 LocalDate)、排除字段(
@Expose)、格式化输出(new GsonBuilder().setPrettyPrinting().create())
传输时直接发字符串即可
HTTP 接口返回 JSON 数组,本质就是返回一个 String 响应体,Content-Type 设为 application/json:
立即学习“Java免费学习笔记(深入)”;
- Spring Boot 示例(Controller):
@GetMapping("/users") public String getUsers() throws JsonProcessingException { return mapper.writeValueAsString(userList); }⚠️ 实际更推荐直接返回对象,让 Spring 自动序列化:@GetMapping("/users") public List<User> getUsers() { // Spring 会自动调用 Jackson 转成 JSON 响应 return userList; } - 手动发 HTTP 请求(如 OkHttp)时,把
json字符串作为请求体,Header 加上Content-Type: application/json
常见问题提醒
-
中文乱码?确保响应头设置了
Content-Type: application/json;charset=UTF-8,Jackson 默认用 UTF-8,但 Tomcat 等容器可能需要额外配置 -
日期格式不对?Jackson 可配
mapper.registerModule(new JavaTimeModule())支持LocalDateTime;Gson 需注册TypeAdapter -
循环引用报错?Jackson 加
@JsonManagedReference / @JsonBackReference;Gson 用GsonBuilder.setExclusionStrategies() -
不想暴露某些字段?Jackson 用
@JsonIgnore或@JsonView;Gson 用@Expose+excludeFieldsWithoutExposeAnnotation()

















