简体   繁体   中英

How to count number of elements from JSON using java

I am pretty new to java and rest. I was trying to count elements from the item object using rest. If you check below Json then you will find 6 elements associated with the item object.

{
  "response": {
    "status": "active",

    "timestamp": "2019-01-02 20:07:42"
  },

  "group": [
    {

      "best_option": "Offer",
      "item": {
        "F": [
          {
            "code": "228"
          }
        ],
        "E": [
          {
            "code": "228"
          }
        ]
      },
      "review": {
        "F": [
          {
            "code": "110"
          },
          {
            "code": "212"
          }
        ],
        "E": [
          {
            "code": "110"
          },
          {
            "code": "212"
          }
        ]
      }
    },
    {
      "best_option": "Offer",
      "item": {
        "D": [
          {
            "code": "228"
          }
        ],
        "C": [
          {
            "code": "228"
          }
        ]
      },
      "review": {
        "D": [
          {
            "code": "110"
          },
          {
            "code": "212"
          }
        ],
        "C": [
          {
            "code": "110"
          },
          {
            "code": "212"
          },
          {
            "code": ""
          }
        ]
      }
    },
    {
      "best_option": "Offer",
      "item": {
        "A": [
          {
            "code": "228"
          }
        ]
      },
      "review": {
        "A": [
          {
            "code": "110"
          },
          {
            "code": "212"
          }
        ]
      }
    },
    {

      "best_option": "Offer",
      "item": {
        "B": [
          {
            "code": "228"
          },
          {
            "code": "662"
          }
        ]
      },
      "review": {
        "B": [
          {
            "code": "110"

          },
          {
            "code": "662"
          }
        ]
      }
    }
  ]
}

I have tried jsonResponse.getBody().jsonPath().get() to count element from item object. I want to count number of elements present in the item object for eg: A, B, C,D,EF . Can someone please help me to sort out my issue?

Iterate over "group" object, get "item" as JsonObject and get the size .

    JsonObject jsonObject = (JsonObject)new JsonParser().parse(input);
    JsonArray groupObject = jsonObject.getAsJsonArray("group");

    int countItem=0;
    for(int i=0;i<groupObject.size();i++) {
        JsonObject items = ((JsonObject)groupObject.get(i)).getAsJsonObject("item");
        countItem+=items.size();
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM