json - 如何在 java 中读取存储在 Amazon S3 中的 JSON 文件并将其转换为 CSV
问题描述
我在 Amazon S3 存储桶中存在一个文本文件,其中包含我需要从中解析和提取信息的 JSON 对象。我如何在java中做到这一点?
我无法在 Java 中做到这一点。我只需要能够解析这个 JSON 文件并转换为 csv 并将这个 CSV 文件上传到 Amazon S3。
一个示例文件是(file.txt):
{"ID":"abc","mscore":45,"cscore":42,"grade":"A"}
{"ID":"xyz","mscore":41"cscore":35,"grade":"B"}
{"ID":"pqr","mscore":37"cscore":41,"grade":"B"}
{"ID":"mno","mscore":32,"cscore":29,"grade":"C"}
我想将其转换为(file.csv):score=mscore+cscore
ID score grade
"abc" 87 A
"xyz" 76 B
"pqr" 78 B
"mno" 61 C
- - - - 更新 - - - - -
我创建了一个班级学生
public class Student{
String ID;
int mscore;
int cscore;
String grade;
}
我使用下面的代码片段来读取 JSON 对象的文本文件并将数据存储在studentList
.
S3Object s3Object = s3Client.getObject(new GetObjectRequest(s3BucketName, fileKey));
S3ObjectInputStream s3Stream = s3Object.getObjectContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(s3Stream, StringUtils.UTF8));
List<Student> studentList=null;
while ((line = reader.readLine()) != null) {
Student student = objectMapper.readValue(line, Student.class);
studentList.add(student);
}
但是,我无法弄清楚如何将此列表转换为 CSV 文件并将其上传到 s3。我不想在本地存储文件。
解决方案
我会考虑编写一个使用 Java 运行时 API 和 AWS SDK for Java 的 Lambda 函数。在该 Lambda 函数中,使用 Java JSON Lib - 例如可以读取和解析 JSON 数据的 GSON。创建生成的 CSV 文件,然后使用 AWS SDK for Java API 调用 S3 以上传新文件。
推荐阅读
- sql - 当我收到错误“无法解析列”时,是否应该添加另一个 Group By 语句?
- ios - 在 Swift 5.3 中仅更新存储在 userData 中的两个 UITextField 之一
- google-cloud-platform - 无法使用 Workload Identity 通过 GKE 连接到 Cloud SQL 代理
- google-cloud-platform - 我们可以使用谷歌云功能将xls文件转换为csv吗
- nuxt.js - 如何在 nuxt.js 中使用 lodash.debounce?
- python - 由于 Tensorflow 错误(张量不可散列),无法使用 SHAP GradientExplainer
- ios - 如何杀死蒸汽服务器
- php - 将网站用户名附加到 paypal IPN product_id
- sql - SQL 嵌套连接显示每个产品的当前价格并使用 MAX()
- twos-complement - 负十进制到定点二进制