Как использовать JsonSlurper?

Я написал тестовый пример в пользовательском интерфейсе SOAP, который создает пользователя и возвращает идентификатор. Это JsonResponse. С помощью скрипта Groovy мне нужно извлечь id

{
    "schemas":["urn:hid:scim:api:ma:1.0:UserInvitation"],
    "urn:hid:scim:api:ma:1.0:UserInvitation":
        [
            {
                "meta":{ 
                    "resourceType":"UserInvitation",                                                   
                    "lastModified":"2015-12-22T07:45:30Z",
                    "location":"https://test-ma.api.assaabloy.com/credential-management/customer/663/invitation/2643209"
                },
                "invitationCode":"FBXO-SRWS-LKFI-ZKZI",
                "status":"PENDING",
                "createdDate":"2015-12-22T02:45:30Z",
                "expirationDate":"2015-12-22T02:45:30Z",
                "id":2643209
             }
         ]
}

Я новичок в Groovy. Пожалуйста, помогите мне с этим.


person Ekta    schedule 22.12.2015    source источник


Ответы (1)


Это будет:

import groovy.json.JsonSlurper

def json = """
{
    "schemas":["urn:hid:scim:api:ma:1.0:UserInvitation"],
    "urn:hid:scim:api:ma:1.0:UserInvitation":
        [
            {
                "meta":{ 
                    "resourceType":"UserInvitation",                                                   
                    "lastModified":"2015-12-22T07:45:30Z",
                    "location":"https://test-ma.api.assaabloy.com/credential-management/customer/663/invitation/2643209"
                },
                "invitationCode":"FBXO-SRWS-LKFI-ZKZI",
                "status":"PENDING",
                "createdDate":"2015-12-22T02:45:30Z",
                "expirationDate":"2015-12-22T02:45:30Z",
                "id":2643209
             }
         ]
}"""
def slurped = new JsonSlurper().parseText(json)
assert 2643209 == slurped."urn:hid:scim:api:ma:1.0:UserInvitation"[0].id

Оператор new JsonSlurper().parseText(json) вернет экземпляр карты. Таким образом, используя эту карту, вы получаете список с этим оператором: slurped."urn:hid:scim:api:ma:1.0:UserInvitation", затем первый элемент с использованием оператора getAt ([0]) и, наконец, с помощью id вы получаете желаемое значение.

person Opal    schedule 22.12.2015