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 JSON
De 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