str = "[tdr1w6v, tdr1w77]";
ObjectMapper objectMapper = new ObjectMapper();
JavaType type = objectMapper.getTypeFactory().
constructCollectionType(ArrayList.class, String.class);
ArrayList<String> list = null;
try {
list = objectMapper.readValue(str,
new TypeReference<ArrayList<String>>(){});
} catch (IOException e) {
e.printStackTrace();
}
这里抛出一个异常:
com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'tdr1w6v': was expecting 'null', 'true', 'false' or NaN
如何将字符串转换为字符串的数组列表?
@FedericoPeraltaSchaffner建议有帮助。现在我要做的是,在我的binder类中使用objectMapper.writeValueAsString
将数据转换为存储在数据库中。在我的Mapper类,而从数据库读取,我可以使用相同的方式在问题:
ObjectMapper objectMapper = new ObjectMapper();
ArrayList<String> list = null;
try {
list =objectMapper.readValue(str, new TypeReference<ArrayList<String>>(){});
} catch (IOException e) {
e.printStackTrace();
}
所以现在我不必创建一个单独的DTO类,我可以在服务层和DAO上使用相同的模型。
无需使用typerreference也可以轻松满足需求
String str="[tdr1w6v, tdr1w77]";
List<String> al=Arrays.asList(str.replaceAll("[\[\]]","").split(","));
System.out.println(al);