Создайте модель и заполните ее в соответствии с ответом API JSON. - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь сделать модель, модель JSON. Когда я получу ответ, я должен разобрать их и заполнить свою модель. Я действительно не понимаю, как это должно быть сделано. Например для ответа я получаю:

"userId": 1,
"userAccess": 1,
"CE": "WP",

и я должен сделать такую ​​модель, и эта модель должна быть заполнена в соответствии с этим ответом. Моя модель должна выглядеть так, я думаю:

"userId": ,
"userAccess": ,
"CE": "",

и моя модель должна быть заполнена в соответствии с ответом, как userId должен быть заполнен 1, userAcces с 1 и CE с "WP"

У меня нет проблем с разбором json из ответа API, но я понятия не имею, как тогда моя модель должна заполняться этим разобранным json.

Вот как я пытаюсь разобрать мой JSON:

public MyApiService(Integer someId) {
        String endpoint = "http://test-coregatewayapi.com/os/" + someId
        RequestObject request  =  findTestObject('Object Repository/Loans_Requests/ColGet/GET')
        request.setRestUrl(endpoint)
        ResponseObject resp = WS.sendRequestAndVerify(request)
        String getcontent = resp.getResponseBodyContent()
        parsedJson = slurper.parseText(getcontent)
    }

    public int getData() {
        return parsedJson[0]['dataId']
    }

Ответы [ 2 ]

2 голосов
/ 21 мая 2019

Это зависит от используемой вами платформы.

Например, с помощью gson:

String json = "{\"brand\":\"Jeep\", \"doors\": 3}"
Gson gson = new Gson()
Car car = gson.fromJson(json, Car.class)

В простой шпунтовой

 def json = new JsonSlurper().parse(...) as Car
0 голосов
/ 21 мая 2019

Я понял, как решить мой вопрос.

Вот мой код:

public class MyApiService {

JsonSlurper slurper = new JsonSlurper()

    public MyApiService() {

    }

    public JsonModel MyApiServiceCall(Integer someId) {
        String endpoint = "http://test-coregatewayapi.com/v1/" + someId
        RequestObject request  =  findTestObject('Object Repository/Deposits_Requests/GET/GET_De')
        request.setRestUrl(endpoint)
        ResponseObject resp = WS.sendRequestAndVerify(request)
        String getcontent = resp.getResponseBodyContent()
        def parsedJson = slurper.parseText(getcontent)
        def newModel = new JsonModel(parsedJson)
        return newModel
    }


}

@ToString
    class JsonModel {
        String typeId
        boolean isOk
        Float balance
    }

и в основном тестовом примере я просто использую это:

MyApiService test = new MyApiService()
JsonModel model=test.MyApiServiceCall(39)

def k = model.type

Где я могу получить любой из моих проанализированных объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...