使用JSON列表的Scala酸洗

使用JSON列表的Scala酸洗,scala,scala-pickling,Scala,Scala Pickling,我正在尝试使用Scala pickle“取消勾选”JSON结构,如下所示: {"id":1,"aList":[{"x":1}, {"x":2}]} 遗憾的是,使用以下代码取消勾选时: import scala.pickling._, scala.pickling.Defaults._, json._ val jsonString="""{"id":1,"aList":[{"x":1}, {"x":2}]}""" case class X(id:Int,aList:List[Y]) case

我正在尝试使用Scala pickle“取消勾选”JSON结构,如下所示:

{"id":1,"aList":[{"x":1}, {"x":2}]}
遗憾的是,使用以下代码取消勾选时:

import scala.pickling._, scala.pickling.Defaults._, json._

val jsonString="""{"id":1,"aList":[{"x":1}, {"x":2}]}"""

case class X(id:Int,aList:List[Y])
case class Y(x:Int)

jsonString.unpickle[X]
我得到以下例外情况:

scala.MatchError: [{"x" : 1.0}, {"x" : 2.0}] (of class scala.util.parsing.json.JSONArray)
at scala.pickling.json.JSONPickleReader$$anonfun$beginEntry$2.apply(JSONPickleFormat.scala:212)
at scala.pickling.json.JSONPickleReader$$anonfun$beginEntry$2.apply(JSONPickleFormat.scala:203)
at scala.pickling.PickleTools$class.withHints(Tools.scala:521)
at scala.pickling.json.JSONPickleReader.withHints(JSONPickleFormat.scala:170)
at scala.pickling.json.JSONPickleReader.beginEntry(JSONPickleFormat.scala:203)

是否可以对列表/集合使用Scala pickling?

pickling不是JSON解码器。pickling中的JSON支持是二进制格式的可读替代方案。在现实生活中使用JSON酸洗是没有意义的。对于JSON解码,您可以尝试
argonaut io/argonaut
,它也可以在没有反射的情况下工作,但不使用宏。