在游戏中! (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中的元素数量?
答案 0 :(得分:25)
如果要计算数组中对象的数量,可以将其映射到JsArray
。
people.as[JsArray].value.size
或people.asOpt[JsArray].map(_.value.size)
。