如何计算JsValue中JsObjects的数量?

时间:2013-08-13 14:16:19

标签: scala playframework-2.0

在游戏中! (2.2-M2)我有JsValue类似于:

val people: JsValue = [{"name":"Alice","subdomain":"alice","color":"orange"},{"name":"Jorge","subdomain":"jorge","color":"blue"},{"name":"Bob","subdomain":"robert","color":"green"}...]

我只想要这个JsValue中的元素数量。我可以通过

得到它
(people \\ "name").size

但是此大小计算位于接收具有不同内容的JsValues的方法内,并且name并不总是存在,例如

val places: JsValue = [{"country":"UK", "country":"ES", ...]

val things: JsValue = [{"widget":"foo", "price":"1", "widget":"bar" ... ]

我把头发拉出来,我如何才能获得这些JsValues中的元素数量?

1 个答案:

答案 0 :(得分:25)

如果要计算数组中对象的数量,可以将其映射到JsArray

people.as[JsArray].value.sizepeople.asOpt[JsArray].map(_.value.size)