我有一个Java项目,女巫咨询了一个API,该API返回了String
,例如:
"['test1', 'test2', 'test3']" // the array is a string
因此基本上是将数组对象解析为String
。我想知道将其转换为真实Java List
的最佳方法。
答案 0 :(得分:5)
['test1', 'test2', 'test3']
是一个JSON数组,因此可以用Gson或Jackson进行解析。尽管JSON通常要求在String
值周围使用双引号,但Gson仍会解析单引号:
String json = "['test1', 'test2', 'test3']";
Type listType = new TypeToken<List<String>>() {}.getType();
List<String> list = new Gson().fromJson(json, listType);
System.out.println(list); // [test1, test2, test3]
或者,您可以使用正则表达式。假定值不能包含转义的撇号\'
符号:
String text = "['test1', 'test2', 'test3']";
Pattern pattern = Pattern.compile("'([^']+)'");
Matcher matcher = pattern.matcher(text);
List<String> list = new ArrayList<>();
while (matcher.find()) {
list.add(matcher.group(1));
}
System.out.println(list); // [test1, test2, test3]