jsonscalaplayframeworkplayframework-json

Play 2.3: How to count json child nodes?


I have this json:

{
  "errors": {
    "password": [
      "This field is required"
    ],
    "email": [
      "This field is required"
    ]
  }
}

How do I count child nodes under "errors" node?


Solution

  • One way, you can do that:

    import play.api.libs.json.{JsObject, Json}
    
    val errors = """{"errors":{"password":["This field is required"],"email":["This field is required"]}}"""
    val errorsCount = Json.parse(errors).
        asOpt[JsObject].
        flatMap(json => (json \ "errors").asOpt[JsObject]).
        map(json => json.fields.size).getOrElse(0)