如何使用uPickle将case类序列化/反序列化为js.Dynamic

nva*_*ada 5 scala scala.js upickle

我使用uPickle/ScalaJS使用此代码片段将js.Dynamic对象反序列化为case类:

read[myClass](JSON.stringify(dynObj))
Run Code Online (Sandbox Code Playgroud)

其中myClass是case类,dynObj是js.Dynamic对象.

有没有样板,更简单的方法吗?

为了序列化一个case类,我已经能够使用这个例子作为起点,使用Shapeless序列化为js.Dynamic:

使用Shapeless将嵌套的case类转换为嵌套的Maps

我希望能够使用uPickle代替这一点.如何用uPickle完成往返旅行?

Li *_*oyi 6

upickle.default.readJs[myClass](upickle.json.readJs(dynObj))
Run Code Online (Sandbox Code Playgroud)

应该这样做.如果你发现自己做了很多事,你可以将它包装在一个好帮手中.

类似的调用存在于写东西js.Dynamic,反之亦然

 upickle.json.writeJs(upickle.default.writeJs[myClass](myClassInstance))
Run Code Online (Sandbox Code Playgroud)

虽然你可以在这里省略类型参数,因为它会被推断出来