关于java:Jackson:部分反序列化到List <String>

Jackson : partial deserialization to List<String>

我有一个用例,我需要使用Jackson来反序列化JSON,例如:

1
2
3
4
5
[
    {"prop1":"value1","prop2":"value2"},
    {"prop1":"value3","prop2":"value4"},
    ...
|

到List ,其中List的元素是JSON字符串,例如

" {\\\\" prop1 \\\\":\\\\" value1 \\\\",\\\\" prop2 \\\\":\\\\" value2 \\\\"}}""

@JsonRawValue似乎在这里可能有用,但是我不确定如何使用它(并且宁愿不创建带有单个字符串的模型类来保存值)。


使用Java 8,您可以获得ListObjectNode元素以及mapcollectListString元素。

1
2
List<ObjectNode> list = mapper.readValue(json, new TypeReference<List<ObjectNode>>() {});
List<String> strings = list.stream().map(node -> node.toString()).collect(Collectors.toList());

在没有Java 8的情况下,您可以执行相同的操作,但需要手动进行。