杰克逊:对List <string> </string>进行部分反序列化

时间:2014-11-27 03:35:50

标签: java json jackson

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

[
    {"prop1":"value1","prop2":"value2"},
    {"prop1":"value3","prop2":"value4"},
    ...
|

到List&lt; String&gt;其中List的元素是JSON字符串,如

“{\” PROP1 \ “:\” VALUE1 \ “\ ”PROP2 \“:\ ”VALUE2 \“}”

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

1 个答案:

答案 0 :(得分:1)

使用Java 8,您可以获得List ObjectNode个元素,mapcollect ListString元素

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

如果没有Java 8,您可以手动执行相同的操作。