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

最佳答案

如果要计算数组中对象的数量,可以将其映射到JsArray
people.as[JsArray].value.sizepeople.asOpt[JsArray].map(_.value.size)

10-06 03:12