我正在寻找一种超级简单的方法来获取一个大的 JSON 片段,这是一个包含一堆大对象的长列表,然后解析它,然后从每个对象中挑选出相同的几个值,然后映射到一个案例中班级。
我已经非常努力地让 lift-json (2.5) 为我工作,但是我在检查是否存在键时遇到了麻烦,如果存在,则映射整个对象,但如果不存在,则跳过它.
我绝对不理解 Lift-JSON 的这种语法:
case class Car(make: String, model: String)
...
val parsed = parse(jsonFragment)
val JArray(cars) = parsed / "cars"
val carList = new MutableList[Car]
for (car <- cars) {
val JString(model) = car / "model"
val JString(make) = car / "make"
// i want to check if they both exist here, and if so
// then add to carList
carList += car
}
到底是什么构造使它看起来像在赋值运算符的左侧创建案例类?我说的是“JString”部分。此外,它应该如何应对缺少钥匙的情况?
有人可以向我解释一下这样做的正确方法是什么吗?如果我有我正在寻找的嵌套值,我只想跳过整个对象并继续尝试映射下一个对象。
有没有比 Lift-JSON 更直接的方法?
使用extractOpt 会有帮助吗?
我看了很多: https ://github.com/lift/framework/tree/master/core/json
对我来说仍然不是特别清楚。
非常感谢帮助!!!!