在游戏中! (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.size
或people.asOpt[JsArray].map(_.value.size)
。