You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确将JSON数组格式String字符串转换为ArrayList<String>

问题原因

你当前的输入是标准JSON数组格式的字符串,直接按逗号分割只会拆分元素边界,无法自动过滤首尾的方括号、每个元素外层包裹的双引号,所以会出现多余符号。

解决方案

优先推荐使用JSON解析库处理,兼容性最强,即使元素包含逗号、转义引号等特殊字符也可以正常解析;如果场景固定无特殊字符,也可以用纯字符串处理实现。

方案1:使用JSON解析库(推荐)

以Gson为例:

  1. 引入Gson依赖(Maven示例)
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.10.1</version>
</dependency>
  1. 转换代码
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.util.List;

// 核心转换逻辑
Gson gson = new Gson();
List<String> logopath = gson.fromJson(pos, new TypeToken<List<String>>(){}.getType());

以Jackson为例:

  1. 引入Jackson依赖(Maven示例)
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.2</version>
</dependency>
  1. 转换代码
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;

// 核心转换逻辑
ObjectMapper objectMapper = new ObjectMapper();
List<String> logopath = objectMapper.readValue(pos, new TypeReference<List<String>>() {});

方案2:纯字符串处理(仅适合无特殊字符的简单场景)

如果确认所有元素都不含转义引号、逗号等特殊符号,可以直接对字符串做裁剪清洗后拆分:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

// 先去掉首尾的方括号
String content = pos.replaceAll("^\\[|\\]$", "");
// 按逗号拆分后清洗每个元素两端的双引号
List<String> logopath = Arrays.stream(content.split("\\s*,\\s*"))
        .map(s -> s.replaceAll("^\"|\"$", ""))
        .collect(Collectors.toList());
// JDK16及以上可以直接用.toList()代替collect方法

内容的提问来源于stack exchange,提问作者Steve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 14:00:04