es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

“RequestBody de Spring Boot con JSONObject”

Estoy intentando configurar mi RestController para recibir un json con otro json adentro (no conozco la estructura de ese segundo json)…
algo como esto:

JSON
{
“field1″:”value1”,
“jsonField”:{
“anotherField1”:1,
“anotherField2”:0.2
}
}

Y mi clase de solicitud es así:

Java
public class Request {
private String field1;
private org.json.JSONObject jsonField;
}

Pero cuando llamo a mi controlador, ‘field1’ se establece, pero ‘jsonField’ no. Solo se establece con ‘{}’

EDITAR: Este es el método del controlador:

Java
@PostMapping
public ResponseEntity postMethod(@RequestBody Request request) {}

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema podría estar relacionado con la forma en que se define la clase Request. En lugar de utilizar la clase org.json.JSONObject para representar el campo JSON, es mejor definir una clase separada para representar la estructura de ese campo JSON. Por ejemplo:

    public class Request {
        private String field1;
        private InnerRequest jsonField;
    
        // getters and setters
    }
    
    public class InnerRequest {
        private int anotherField1;
        private double anotherField2;
    
        // getters and setters
    }
    

    Entonces, el JSON enviado al controlador debería tener la siguiente estructura:

    {
        "field1":"value1",
        "jsonField":{
            "anotherField1":1,
            "anotherField2":0.2
        }
    }
    

    Esto debería permitir que el campo jsonField sea llenado correctamente desde el JSON enviado por el cliente.

Comments are closed.