J'utilise le modèle de repos Springs pour publier des données dans JSON vers une API. Malheureusement, les valeurs de ma HashMap contiennent à la fois des doubles et des chaînes.Comment puis-je envoyer correctement un HashMap qui contient à la fois des doublons et des chaînes dans ses valeurs lors de la publication dans une API dans JSON
J'ai essayé d'utiliser un HashMap avec le type de données suivant: HashMap, mais je l'ai trouvé que le résultat JSON ressemble à quelque chose comme ce qui suit à la place:
{
"VARIABLE_1":"0.0000",
"VARIABLE_2":"True",
"VARIABLE_3":"String"
}
Malheureusement, l'API je poste à ne traite pas correctement ces doubles car ils sont envoyés en tant que chaînes. Y a-t-il quelque part que je puisse être indifférent aux types de données, mais que le format HttpEntity double correctement.
Voici un exemple du code que je utilise en fait:
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.http.client.CommonsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
...
public void postMethod(HashMap<String,Object> input) {
CommonsClientHttpRequestFactory requestFactory = new CommonsClientHttpRequestFactory();
restTemplate.setRequestFactory(requestFactory);
HttpEntity<HashMap<String,Object>> requestEntity = new HttpEntity<>(input, headers);
ResponseEntity<Result> result = restTemplate.postForEntity(uri, requestEntity, Result.class);
Result result = result.getBody();
}
Cela me semble être un bon candidat pour utiliser un POJO plutôt qu'une carte. –
Désolé, je ne vois pas clairement où votre carte entre dans votre exemple de code. Est-ce l'argument 'input' du constructeur' HttpEntity'? –
Merci, ça l'efface un peu. Maintenant, quel 'HttpEntity' est-ce? Celui dans Commons HttpCore est une interface; vous ne pouvez pas l'instancier comme ça (ou du tout). –