java: ¿cómo convertir json?

CorePress2024-01-24  9

Quiero convertir el nombre y el apellido al formato json.

@RestController
public class studentsController {

    @GetMapping(value = "/students", produces = { MediaType.APPLICATION_JSON_VALUE } )
    @ResponseBody
    public String getWhoami(@RequestParam String firstname, @RequestParam String lastname ) {
        return "firstname:" + firstname + " lastname: " + lastname;
    }
}

¿Cómo puedo convertir formatos como estos?

{"firstname": "value1", "lastname": "value2"}

Lo intenté con Jackson pero no pude.

La guía oficial de Spring Creación de un servicio web RESTful tiene una buena demostración de esto.

- LHCHIN

29 de marzo de 2021 a las 1:34



------------------------------------

No es necesario crear json manualmente. Crea una clase como:

class Student {
    private String firstname;
    private String lastname;
    
    public Student(String firstname, String lastname) {
        this.firstname = firstname;
        this.lastname  =lastname;
    }
    // getters and setter 
}
    @GetMapping(value = "/students", produces = { MediaType.APPLICATION_JSON_VALUE } )
    @ResponseBody
    public Student getWhoami(@RequestParam String firstname, @RequestParam String lastname ) {
        return new Student(firstname, lastname);
    }

Su objeto se convertirá a json automáticamente.

Respondido

27 de marzo de 2021 a las 7:13

krishnkant jaiswal

krishnkant jaiswal

575

3

3 insignias de plata

9

9 insignias de bronce

2

Llame a esta API. utilizando cartero o cualquier navegador. Esta será la palabra.

– krishnkant jaiswal

27 de marzo de 2021 a las 8:18

No es necesario convertirlo manualmente a json.

- krishnkant jaiswal

27 de marzo de 2021 a las 8:18



------------------------------------

¿Has probado el jackson así?

https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind

agrega en tu clase una instancia como esta:

ObjectMapper mapper = new ObjectMapper();
private ObjectMapper mapper = new ObjectMapper();

pruebe la función desde la instancia de esta manera:

String jsonstr = mapper.writeValueAsString(object);

Digamos que ya tienes elbiblioteca jackson en su proyecto (el archivo jar)

aquí hay una clase de muestra:


public class SampleClass{
      private ObjectMapper mapper = new ObjectMapper();

      public String sampleMethodToJSONString(Student student){
          return mapper.writeValueAsString(student);
      }

}

1

¿Puedes ser más específico?

-Abdullah İskifoglu

27 de marzo de 2021 a las 7:52



------------------------------------

Puedes cambiar el tipo de datos devueltos para usar Map<String, String> en lugar de String o use ResponseBody<?>

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare