Mongo数据bson转json

系统在第一次运行时,需要初始化一些数据到mongoDB中,初始化数据是从源库导出的json,里面有字符不是标准的如"$oid", "$date"等,需要转成正常的java对象然后插入库。

jsonWriterSettings = JsonWriterSettings.builder().outputMode(JsonMode.RELAXED)
                .dateTimeConverter(new JsonDateTimeConverter()).objectIdConverter(new ObjectIdConverter()).build();


private <T extends Entity> List<T> initData(String fileName, Class<T> entityClass) {
        try (InputStream resourceAsStream = this.getClass().getResourceAsStream("/script/" + fileName)) {
            List<T> entities = new ArrayList<>();
            for (String readLine : IOUtils.readLines(resourceAsStream, StandardCharsets.UTF_8)) {
                Document parse = Document.parse(readLine);
                entities.add(JSONUtil.read(parse.toJson(jsonWriterSettings), entityClass));
            }
            return entities;
        } catch (IOException e) {
            log.error("初始化报错", e);
            return Collections.emptyList();
        }
    }

参考:https://www.baeldung.com/java-convert-bson-to-json

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。