首页 > 解决方案 > 将 JSON 行作为文件写入 S3

问题描述

我试图了解使用 JSON 行创建文件并上传 S3 json 行的最佳方法,目前我正在使用字符串生成器来构建来自地图的数据的字符串。这个 processResults 将被多次调用,最后字符串生成器将保存大约 100 万条 json 行。

StringBuilder stringBuilder = new StringBuilder();
protected void processResults(Map<String, Object> data) throws JSONException {
    JSONObject jsonObject = new JSONObject();
    HashSet<JSONObject> lists = new HashSet();
    for (Map.Entry<String,Object> entry : data.entrySet()) {
        jsonObject.put(entry.getKey(), entry.getValue().toString());

    }
    stringBuilder.append(jsonObject.toString()).append("\n");
}

还有另一种方法可以使用这个大的 stringBuilder 并将其上传到 S3

这工作得很好。我只是担心它处理大量数据。示例 stringBuilder 在某些情况下可以容纳数百万行 json 行。

所以我的问题是这是处理这种情况的最佳方法吗?我担心的是内存,因为 stringBuilder 将保存所有数据,直到进程完成。

谢谢

标签: javajson

解决方案


推荐阅读