【发布时间】: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。我不想在本地存储文件。
【问题讨论】:
-
这能回答你的问题吗? How to parse JSON in Java
-
嘿,我可以使用杰克逊的对象映射器解析数据,并且我有一个学生列表作为 List
studentList。我不知道如何创建 csv 文件并上传到 s3 而不在本地创建文件。
标签: json amazon-web-services csv amazon-s3