3
我想要使用json格式的文本并将其转换为xml。对此,我正在使用lift-json。根据升降JSON文件here(def toXml
),我应该能够使用以JSON数组的元素转换为逗号分隔字符串:由lift-json 3.0.1将代码片段中的编译错误转换成逗号分隔字符串的json数组
toXml(json map {
case JField("nums",JArray(ns)) => JField("nums",JString(ns.map(_.values).mkString(",")))
case x => x
})
所以我写了下面的代码:
case work: ActiveMQTextMessage =>
println("work.getText: " + work.getText)
val workAsJson: JValue = parse(work.getText)
val processedArraysJson = workAsJson map {
case JField(label, JArray(ns)) => JField(label, JString(ns.map(_.values).mkString(",")))
case x => x
}
val workAsXml: scala.xml.NodeSeq = toXml(processedArraysJson)
但由于某种原因它不能编译。
它报告两个错误:
Error:(55, 14) constructor cannot be instantiated to expected type;
found : net.liftweb.json.JsonAST.JField
required: net.liftweb.json.JsonAST.JValue
case JField(label, JArray(ns)) => JField(label, JString(ns.map(_.values).mkString(",")))
Error:(55, 49) type mismatch;
found : net.liftweb.json.JsonAST.JField
required: net.liftweb.json.JsonAST.JValue
case JField(label, JArray(ns)) => JField(label, JString(ns.map(_.values).mkString(",")))
通知,升JSON的版本,我使用的是:
"net.liftweb" % "lift-json_2.12" % "3.0.1"
使用Scala 2.12
非常感谢安东尼奥,这工作,我会保持你的笔记记下一倍。 – has981
没问题!抱歉花了这么长时间...我几周前发现了这个问题,但忘记发布回应:( –