【问题标题】:How to read a JSON file stored in Amazon S3 in java and convert it to CSV如何用java读取存储在Amazon S3中的JSON文件并将其转换为CSV
【发布时间】:2021-10-22 17:33:11
【问题描述】:

我的 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;
}

我使用下面的代码 sn-p 读取 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。我不想在本地存储文件。

【问题讨论】:

标签: json amazon-web-services csv amazon-s3


【解决方案1】:

我会考虑编写一个使用 Java 运行时 API 和 AWS SDK for Java 的 Lambda 函数。在该 Lambda 函数中,使用 Java JSON Lib - 例如可以读取和解析 JSON 数据的 GSON。创建生成的 CSV 文件,然后使用 AWS SDK for Java API 调用 S3 以上传新文件。

【讨论】:

  • 我已经用最新更新修改了这个问题。你能看看吗?提前致谢!
猜你喜欢
  • 2021-12-07
  • 1970-01-01
  • 2022-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-10
相关资源
最近更新 更多