Java 在json或xml文件中写入类的实例

Java 在json或xml文件中写入类的实例,java,xml,json,scala,Java,Xml,Json,Scala,我有一个类的实例列表,有点复杂:它有很多val,包括嵌套类,这些类也有很多val。我想以json或xml格式写入文件 我发现了一个简单的示例,它似乎可以实现我想要的功能(虽然是Java,但这并不重要): 我的输出是写入文件的二进制数据。此外,toString()方法手动枚举所有字段,这对于我的实际类来说是不可接受的 那我该怎么做呢?如果你能举一个小例子,而不是说“有一个叫做X的库,请使用它”,我将不胜感激。在上一个关于序列化的问题中,我已经无法使用所有这些库。我还不确定我需要的是序列化,因为我需

我有一个类的实例列表,有点复杂:它有很多val,包括嵌套类,这些类也有很多val。我想以
json
xml
格式写入文件

我发现了一个简单的示例,它似乎可以实现我想要的功能(虽然是Java,但这并不重要):

我的输出是写入文件的二进制数据。此外,
toString()
方法手动枚举所有字段,这对于我的实际类来说是不可接受的

那我该怎么做呢?如果你能举一个小例子,而不是说“有一个叫做X的库,请使用它”,我将不胜感激。在上一个关于序列化的问题中,我已经无法使用所有这些库。我还不确定我需要的是序列化,因为我需要它不是以二进制格式存储,而是以xml或json格式存储。

使用Jackson的示例:

final ObjectMapper mapper = new ObjectMapper();
final String s = mapper.writeValueAsString(yourEmployee);
s
以字符串形式包含JSON

然后,您可以读回该值并将其转换回POJO


正如@veritas在评论中提到的,你可以扩展Jackson,定制{de,}序列化等等——见鬼,你甚至可以让它煮咖啡。但是默认设置已经相当不错了,所以您甚至不需要深入研究它。

我建议您使用一个知道如何将POJO对象序列化为XML或JSon的库。
看看或者。也是一个选项。

Jackson api可以扩展以实现java对象和json之间的任何映射。另请参见联机教程添加结果文本文件外观示例like@om-nom nom据我所知,他不想序列化它,而是想在文件中以人类可读的格式编写,而不是在binary@AlexIvxml和json相对来说是人类可读的,我上面链接的问题不是关于二进制序列化的,但是关于序列化为json/xml
final ObjectMapper mapper = new ObjectMapper();
final String s = mapper.writeValueAsString(yourEmployee);