Le corps de la requête Spring JSON n'est pas mappé sur Java POJO
Je suis en utilisant le Printemps pour mettre en œuvre un service web RESTful. L'un des points de terminaison prend dans une chaîne JSON comme du corps de la requête et je souhaite le faire correspondre à un POJO. Toutefois, il semble maintenant que le passé-chaîne JSON n'est pas bien mappé à la POJO.
voici le @RestController interface
@RequestMapping(value="/send", headers="Accept=application/json", method=RequestMethod.POST)
public void sendEmails(@RequestBody CustomerInfo customerInfo);
le modèle de données
public class CustomerInfo {
private String firstname;
private String lastname;
public CustomerInfo() {
this.firstname = "first";
this.lastname = "last";
}
public CustomerInfo(String firstname, String lastname)
{
this.firstname = firstname;
this.lastname = lastname;
}
public String getFirstname(){
return firstname;
}
public void setFirstname(String firstname){
this.firstname = firstname;
}
public String getLastname(){
return lastname;
}
public void getLastname(String lastname){
this.lastname = lastname;
}
}
Et enfin mon POST demande:
{"CustomerInfo":{"firstname":"xyz","lastname":"XYZ"}}
avec le Type de Contenu spécifié à l'application/json
Cependant, quand j'imprime la valeur de l'objet, la valeur par défaut("premier" et "dernier") se sont imprimées au lieu de la valeur que j'ai passé("xyz" et "XYZ")
Personne ne sait pourquoi je n'obtiens pas le résultat que j'attendais.
FIXER
Donc il s'est avéré que, la valeur du corps de la requête n'est pas passé parce que j'ai besoin d'avoir l' @RequestBody annotation, non seulement dans mon interface, mais dans la méthode de la mise en œuvre. Une fois que j'ai que les, le problème est résolu.
source d'informationauteur Y. Chen
Vous devez vous connecter pour publier un commentaire.
Donc il s'est avéré que, la valeur du corps de la requête n'est pas passé parce que j'ai besoin d'avoir l' @RequestBody annotation, non seulement dans mon interface, mais dans la méthode de la mise en œuvre. Une fois que j'ai que les, le problème est résolu.
La mise en forme c'est terrible, mais cela devrait fonctionner pour jackson de configuration.
Aussi, comme mentionné dans un commentaire, votre JSON est mauvais pour votre objet.
ne semble pas être la bonne JSON de votre objet.
Vous pouvez le faire de plusieurs façons, Ici, je vais le faire en dessous de différentes façons-
NOTE:
les données de la demande devrait être {"customerInfo":{"prenom":"xyz","lastname":"XYZ"}}1st way
Nous pouvons lier les données ci-dessus la carte ci-dessous2nd way
nous peut se lier directement à pojostep 1
créer dto classeUserInfo.java
step 1.
créer un autre dto classeCustomerInfo.java
step 3
lier corps de demande de données pour des pojoJ'espère que ce sera vous aider. Grâce
Des Données De L'Échantillon :
Pour les données ci-dessus ce pring contrôleur de méthode de travail pour moi:
enlever ces deux états de constructeur par défaut et essayer