J'essaie de mettre à jour un paramètre de l'objet, en vous attendant: et envoyant le json comme ceci: p> Mais le résultat est-ce: p> Qu'est-ce que je fais mal ici? Il y a une autre façon d'envoyer ce paramètre? P> P>
3 Réponses :
Créer une classe pour la demande corporelle contient un champ et utilisez la classe comme le corps de la demande.
@PutMapping("{id}/nome")
public ResponseEntity<?> putDisciplinaNome(@PathVariable int id, @RequestBody DisDto disDto) {
}
Essayer d'envelopper votre corps dans un type d'entrée comme celui-ci. De cette façon, lorsque vous envoyez la demande, le corps (supposer JSON) sera quelque chose comme ça. p>
Je voulais continuer à envoyer en tant que JSON, alors je jette la chaîne à JsonObject comme ceci:
public ResponseEntity<?> putDisciplinaNome(@PathVariable int id, @RequestBody String json) {
JSONParser parser = new JSONParser();
JSONObject json2 = null;
try {
json2 = (JSONObject) parser.parse(json);
} catch (ParseException e) {
return new ResponseEntity<>("Json could not be formatted.", HttpStatus.BAD_REQUEST);
}
Disciplina d = disciplinaService.getDisciplinabyID(id);
if (d == null) {
return new ResponseEntity<>(d, HttpStatus.NOT_FOUND);
} else {
d.setNome(json2.get("nome").toString());
return new ResponseEntity<>(d, HttpStatus.OK);
}
}
Vous n'avez pas besoin d'analyser JSON, le printemps peut automatiquement le faire pour vous, voir ma solution :)
Essayez d'utiliser un patch pour mettre à jour un champ d'un objet.
Montrez également comment vous envoyez la demande.
Montrez comment créez-vous une demande, en particulier le corps de la demande.
Essayez d'ajouter
Consoles = "Texte / Code" Code> comme paramètre sur @RequestMappage, comme celui-ci:@RequestMapping (valeur = "/ myendPoint", consomme = {"Texte / plaine"}) code> Cela le forcera à traiter l'objet en tant que texte brut au lieu d'un objet JSONDe plus, étant donné que son seul champ que vous souhaitez mettre à jour, vous pouvez envisager d'utiliser
@requestparam code> ou même@pathvariable code> pour cela.@ Maurice pour que je puisse continuer à envoyer comme Json?
@ chiptus12 j'ai essayé d'utiliser un patch, mais rien n'a changé
@Anapaulalima Aucun envoi en tant que texte brut ou meilleur en tant que paramètre de demande. Le nom du paramètre doit être Nome. Remplacer
@requestbody code> avec@Requestparam code>@ Maurice ça a fonctionné: D Merci