mmdc
mmdc

Reputation: 1746

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?

Upvotes: 2

Views: 2784

Answers (2)

mavarazy
mavarazy

Reputation: 7735

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)

Upvotes: 5

areddy
areddy

Reputation: 67

var a = {
    "errors": {
        "password": [
            "This field is required"
        ],
        "email": [
            "This field is required"
        ]
    }
};

Object.keys(a.errors).length;

Upvotes: 2

Related Questions