假设我有一个类Student,它只有name和age属性。
public class Student {
private String studentName;
private Integer age;
}
我想把这个Student对象转换成JSON文件(我想我可以用Jacksonmapper来完成)
然后,我需要将这个.json文件存储到存储器中,所以我使用保存方法(String key,byte[] resource)将任何类型的文件(.zip,.txt等)保存到存储器中。
所以我想知道我能不能这样做:
1.使用Jackson将值写入字符串(Student到json)
1.获取此字符串的字节数
1.使用save保存到存储(studentName,字节)
返回学生对象:
然后,当我从存储中搜索学生时,我需要转换回String,如下所示:
Charset charset = Charset.forName("UTF-8");
String string = new String(studentBytes, charset);
然后使用JacksonMap器将字符串返回给Student
这是否一个好办法(我想不是因为想法是那些字节实际上是一个.json文件,而是一个java String对象的字节)?我有点困惑,因为我正在保存的“文件字节”是用这种方法来自一个String对象的,但我找不到如何将Student对象转换为“.json文件”,无法确定如何保存.json文件(我不需要保存在磁盘中,因为我只需要保存到云存储的字节),我如何将对象写入“内存中的.json文件”或者可能是不将其视为文件,就像bytes对不对?请指出正确的方向,比如如何直接将对象写入一个json文件,然后将这个文件bytes存储?
1条答案
按热度按时间yi0zb3m41#
是的,如果你想把json保存到一个文件上传到S3,这就是你想要做的。Jackson有一个原生的json数据结构(我认为它叫做
JsonNode
),但是你不想把它保存到一个文件。只要把json字符串保存到一个文本文件。要将
Student
对象转换为字符串:您可以将此字符串保存到文本文件并上传到S3。当您想要取回
Student
对象时:请注意,“json file”没有什么特别之处,它只是一个扩展名为
.json
的文本文件,包含的文本数据恰好是Json格式,您可以将json_string
保存为如下文件:(参考:https://www.baeldung.com/jackson-object-mapper-tutorial)