字符串到数组列表<String>使用类型引用


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);

最新更新