使用spray-json对子类进行序列化和反序列化

时间:2015-06-10 09:36:05

标签: json scala spray-json

假设我有一个基类B和两个子类S1和S2。

我想序列化和反序列化S1和S2类。

因此我有两个问题:

  1. 是否可以为B类编写JsonFormat并在S1和S2类中使用它进行序列化?

  2. 我想要两个反序列化类S1和S2。但是我不知道json String是否代表类S1或S2,所以我认为我不能使用spray-json方法convertTo,因为我必须知道我想要反序列化的确切类型。

  3. 我对2.的解决方案是编写一个包装类,其中包含类型(S1或S2)的字符串和S1或S2的json字符串。这是两个最好的方式还是有其他更好的方法来做到这一点?

    提前致谢

1 个答案:

答案 0 :(得分:1)

这是可能的,但您的格式不会(也不能)序列化不属于S1的{​​{1}}或S2的任何详细信息。

我建议为BS1设置单独的格式,然后为S2设置一个自定义格式,并将其委托为适当的格式:

B