как использовать массив в массиве при весенней загрузке? - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь использовать API, ответ которого выглядит следующим образом: -

{
    "data": [
        [
            "2075/76",
            "2075-2094767",
            "2075/08/29",
            1466,
            "210003502",
            null,
            "गीता  श्रीस काउचा थापा",
            2418146,
            null,
            14224,
            "Production",
            1800,
            0,
            "2074/75",
            "2075/09/02",
            "Cash",
            null,
            "1",
            null,
            null,
            11019,
            "2018/12/17",
            0,
            "T",
            null,
            "2018/12/17"
        ],
        [
            "2075/76",
            "2075-2093892",
            "2075/08/28",
            1466,
            "210003502",
            null,
            "हेमन्त  बुढाथोकी",
            2417027,
            null,
            14224,
            "Production",
            1400,
            0,
            "2074/75",
            "2075/09/02",
            "Cash",
            null,
            "1",
            null,
            null,
            11019,
            "2018/12/17",
            0,
            "T",
            null,
            "2018/12/17"
        ]
]
}

Я использую шаблон весенней загрузки и отдыха, как это.

 @GetMapping("/consume")
    public void consumeApi(@RequestParam  String date) throws IOException {
        BankVoucherParams params = setVoucherParams(date);
        RestTemplate restTemplate = new RestTemplate();

        String token = getBearerToken();

        HttpHeaders headers = new HttpHeaders();
        headers.setBearerAuth(token);


        HttpEntity<BankVoucherParams> request = new HttpEntity<BankVoucherParams>(params, headers);

        String response = restTemplate.postForObject(endpoint, request, String.class);

        ObjectMapper objectMapper = new ObjectMapper();

        Object o = objectMapper.readValue(response,Object.class);




        System.out.println(response);
    }

в приведенном выше коде Iполучить ответ в виде строки.Я хочу отобразить каждое значение в класс pojo и вставить его в мою базу данных.Пока я не знаю, как отобразить каждый из этих массивов в мой класс pojo.

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Вы можете преобразовать строку json в HashMap с ключом в качестве «данных» и значением как

List<List<String>> 

или

String[][]. 

Затем выполните итерацию по значению и установите его вPOJO.

Если вы хотите динамически назначать каждую позицию определенному полю POJO, вы можете захотеть сохранить отображение поля позиции и использовать отражение для установки полей.http://tutorials.jenkov.com/java-reflection/fields.html

0 голосов
/ 21 декабря 2018

Если в этой области проекта доступно pojo, вы можете одновременно проанализировать весь объект следующим образом:

ResponseEntity<Object> response = restTemplate.exchange(url, HttpMethod.GET, entity, Object.class);

, где Object может быть заменено вашим pojo.Таким образом, у вас будет что-то похожее на

ResponseEntity<YourClass> response = restTemplate.exchange(url, HttpMethod.GET, entity, YourClass.class);

. Если вам нужно отобразить это, вы можете использовать библиотеки типа Gson или Jackson.

РЕДАКТИРОВАТЬ: Как уже упоминалосьниже вы не получите пары ключ / значение.Из-за этого вам нужно использовать библиотеку картографов, такую ​​как Gson или Jackson

...