Forum Discussion

HimanshuTayal's avatar
HimanshuTayal
Community Hero
6 years ago
Solved

how to determine whether json is jsonArray or jsonObject

Hi All,

 

I am currently stucked at a point where i need to check whether the given json contains array or not.

 

Can any one help me on this:

 

Suppose below is my json:

 

{

"status":"pass",

"code":200,

"data":{

          "abc":[{

          "a1" : "test1"

          "a2" : "test2"

          "a3" : "test3"

          "a4" : "test4"

          },

          {

          "a1" : "test1"

          "a2" : "test2"

          "a3" : "test3"

          "a4" : "test4"

          }],

          "xyz":{

               "b1":"T1"

               "b2":"T2"

               }

     }

}

 

def jsonSlurperTU = new JsonSlurper().parseText(TUResponse)

def expected = jsonSlurperTU.data.abc

def expected1 = jsonSlurperTU.data.xyz

 

i need to check whether xyz is json array or json object as the above json is dummy my json is of 4000 line.

 

 

  • Hi nmrao ,

     

    Thanks for the reply, i will check mentioned solution, however i have done this with below code

     

     

    boolean isCollectionOrArray(object) {    
        [Collection, Object[]].any { it.isAssignableFrom(object.getClass()) }
    }
    
    // some tests
    assert isCollectionOrArray([])

     

    For this i imported below library:

     

    import java.lang.Object; 

5 Replies

  • nmrao's avatar
    nmrao
    Champion Level 3

    HimanshuTayal 

    You can check if the object is instace of a list as shown below:

     

    assert (jsonSlurperTU.data.abc instanceof List)
    assert false == (jsonSlurperTU.data.xyz instanceof List)
    • HimanshuTayal's avatar
      HimanshuTayal
      Community Hero

      Hi nmrao ,

       

      Thanks for the reply, i will check mentioned solution, however i have done this with below code

       

       

      boolean isCollectionOrArray(object) {    
          [Collection, Object[]].any { it.isAssignableFrom(object.getClass()) }
      }
      
      // some tests
      assert isCollectionOrArray([])

       

      For this i imported below library:

       

      import java.lang.Object; 
      • nmrao's avatar
        nmrao
        Champion Level 3
        No problem. I believe that checking the object instace type is simple. Isn't it?