12

在玩!(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 中的元素数量?

4

1 回答 1

28

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

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

于 2013-08-13T14:40:55.167 回答