在Scala中带有动态类型的解析JSON和LIFT-JSON
我正在尝试使用Lift-Web和Scala编写JSON解析。我将JSON映射到了几个案例类(用于嵌套值/类型),但我遇到了MappingException错误。这是我要解析的JSON的嵌套部分:
...
"attachments":[{"8a7d22ff":"Image1.png"}],
...
不幸的是,我在案例类中指定了以下参数
case class myType(
...
attachments: List[(String,String)]
...
)
,我收到了此消息:
Caused by: net.liftweb.json.MappingException: Expected collection but got JObject(List(JField(8a7d22ff,JString(Image1.png)))) for root JObject(List(JField(8a7d22ff,JString(Image1.png)))) and mapping Constructor(TypeInfo(class scala.Tuple2,Some(class scala.Tuple2[class java.lang.String,class java.lang.String])),List(DeclaredConstructor(public scala.Tuple2(java.lang.Object,java.lang.Object),List(Arg(_1,Value(class java.lang.String),false), Arg(_2,Value(class java.lang.String),false)))))
at net.liftweb.json.Meta$.fail(Meta.scala:227)
at net.liftweb.json.Extraction$.newCollection$1(Extraction.scala:330)
at net.liftweb.json.Extraction$.build$1(Extraction.scala:400)
at net.liftweb.json.Extraction$.mkValue$1(Extraction.scala:431)
... 30 more
我也尝试我要使用哪种数据类型来解析具有动态类型的JSON ...有什么想法?
I'm trying to write a JSON parse using lift-web and scala. I mapped my JSON to several case classes (for nested values/types), but I'm stuck with a MappingException error. This is the nested part of the JSON i'm trying to parse:
...
"attachments":[{"8a7d22ff":"Image1.png"}],
...
for which I specified the following parameter in the case class
case class myType(
...
attachments: List[(String,String)]
...
)
Unfortunately, I got this message:
Caused by: net.liftweb.json.MappingException: Expected collection but got JObject(List(JField(8a7d22ff,JString(Image1.png)))) for root JObject(List(JField(8a7d22ff,JString(Image1.png)))) and mapping Constructor(TypeInfo(class scala.Tuple2,Some(class scala.Tuple2[class java.lang.String,class java.lang.String])),List(DeclaredConstructor(public scala.Tuple2(java.lang.Object,java.lang.Object),List(Arg(_1,Value(class java.lang.String),false), Arg(_2,Value(class java.lang.String),false)))))
at net.liftweb.json.Meta$.fail(Meta.scala:227)
at net.liftweb.json.Extraction$.newCollection$1(Extraction.scala:330)
at net.liftweb.json.Extraction$.build$1(Extraction.scala:400)
at net.liftweb.json.Extraction$.mkValue$1(Extraction.scala:431)
... 30 more
I also tried Map[String,String] but nothing, I do not really understand which datatype I've to put for parsing JSON with dynamic types...Any idea?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论