如何计算JsValue中JsObjects的数量?

Jen*_*ger 10 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"}...]
Run Code Online (Sandbox Code Playgroud)

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

(people \\ "name").size
Run Code Online (Sandbox Code Playgroud)

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

val places: JsValue = [{"country":"UK", "country":"ES", ...]
Run Code Online (Sandbox Code Playgroud)

要么

val things: JsValue = [{"widget":"foo", "price":"1", "widget":"bar" ... ]
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ier 25

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

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