如何将类列表格式的字符串转换为List-String?
将JSON数组格式字符串转换为List的方法
你的字符串本质是标准的JSON数组格式,下面提供几种实用的转换方法:
方法一:用Jackson库实现(推荐)
如果项目已经引入Jackson依赖,直接用ObjectMapper解析:
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import java.util.List; public class Demo { public static void main(String[] args) throws Exception { String testing = "[\"Template\",\"Data\",\"Manual\",\"Checklist\",\"Others\"]"; ObjectMapper mapper = new ObjectMapper(); List<String> stringList = mapper.readValue(testing, new TypeReference<List<String>>() {}); // 打印结果验证 System.out.println(stringList); } }
Jackson会自动处理JSON格式的字符串,完美适配泛型List
方法二:用Gson库实现
如果项目用Gson作为JSON处理库,代码如下:
import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import java.util.List; public class Demo { public static void main(String[] args) { String testing = "[\"Template\",\"Data\",\"Manual\",\"Checklist\",\"Others\"]"; Gson gson = new Gson(); List<String> stringList = gson.fromJson(testing, new TypeToken<List<String>>() {}.getType()); System.out.println(stringList); } }
通过TypeToken指定泛型类型,Gson就能准确解析出List
方法三:手动解析(无第三方依赖)
如果不想引入JSON库,可手动处理字符串(注意:仅适用于元素无特殊字符的简单场景):
import java.util.Arrays; import java.util.List; public class Demo { public static void main(String[] args) { String testing = "[\"Template\",\"Data\",\"Manual\",\"Checklist\",\"Others\"]"; // 移除首尾的方括号 String trimmed = testing.substring(1, testing.length() - 1); // 分割成单个元素并去除引号 String[] elements = trimmed.split("\",\""); for (int i = 0; i < elements.length; i++) { elements[i] = elements[i].replace("\"", ""); } List<String> stringList = Arrays.asList(elements); System.out.println(stringList); } }
这种方法逻辑简单,但如果元素里包含逗号或引号,会出现解析错误,所以优先推荐前两种JSON库的方案。
内容的提问来源于stack exchange,提问作者Edward
相关产品推荐
相关产品推荐

