restTemplate.put при обновлении данных, содержащих список, выдает «Невозможно десериализовать экземпляр java .util.ArrayList из START_OBJECT» - PullRequest
0 голосов
/ 25 апреля 2020

Мой фрагмент кода приведен ниже.

    ArrayList<String> list1 = new ArrayList();
    list.add("test");
    Map<String, List> params = new HashMap<String, List>();
    params.put("1", list1);     
    HttpHeaders headers = new HttpHeaders();        
    headers.setContentType(MediaType.APPLICATION_JSON);       
    HttpEntity<String> entity = new HttpEntity<>(params,headers );
    restTemplate.put(uri, entity);

Получение ответа «Не удается десериализовать экземпляр java .util.ArrayList из маркера START_OBJECT \». Кто-нибудь сталкивался с подобной проблемой?

1 Ответ

3 голосов
/ 25 апреля 2020

Вы можете преобразовать Map в Json String, а затем передать в сущность,

String paramsString = new Gson().toJson(params);
HttpEntity<String> entity = new HttpEntity<>(paramsString,headers);
restTemplate.put(uri, entity);
...