java - 在java中将List<Document>解析为列表

标签 java list document

我有一个文档:

{
    "data" : [
        {
            "key1" : "value1",
            "key2" : "value2"
        },
        {
            "key1" : "value3",
            "key2" : "value4"
        }
    ]
}

将上面的文档解析为2个字符串列表的最佳方法是什么:

List<String> data.key1;
List<String> data.key2;

*注意:我使用java8,org.bson.Document

最佳答案

创建class来保存列表data中的单个对象:

class Data {
 private String key1;
 private String key2;
}

使用 Jackson Mapper 将 JSON 解析为您的对象并获取字段列表:

ObjectMapper mapper = new ObjectMapper();
List<Data> data = mapper.readValue(jsonString, List.class);

List<String> key1s = data.stream().map(d -> d.getKey1()).collect(Collectors.toList());

List<String> key2s = data.stream().map(d -> d.getKey2()).collect(Collectors.toList());

更新:如果您有jsonpath ,那么就可以更方便的查询了:

List<String> key1s = JsonPath.read("$.data[*].key1", jsonString);
List<String> key2s = JsonPath.read("$.data[*].key2", jsonString);

关于java - 在java中将List<Document>解析为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51296631/

相关文章:

java - 写作问题(在 eclipse 中?

java - java 如何从实例字段获取对象?

java - List<Character>如何获取具体索引?

apache2 - 如何在apache2中创建多个文档根

document - 嵌入许多嵌套形式,mongoid

javascript - SharePoint 2013 在显示窗体中打开文档

Java - Web Scraper 问题

java - Spring:如何使用@PropertySource 导入不在类路径中的资源文件?

git - 列出所有未被 .gitignore 忽略的文件

python - 在Python中提取列表列表的特定元素