sirve responsebody requestmapping requestbody que para example body java json pojo

java - responsebody - ¿Cómo convertir POJO a JSON y viceversa?



spring post request body example (4)

Quiero saber si hay alguna API de Java disponible para convertir un objeto POJO en un objeto JSON y viceversa.


Sí, está el json.org. Eche un vistazo a http://www.json.org/java/index.html

[editado] Imagina que tienes una clase Java simple como esta:

public class Person { private String name; private Integer age; public String getName() { return this.name; } public void setName( String name ) { this.name = name; } public Integer getAge() { return this.age; } public void setAge( Integer age ) { this.age = age; } }

Por lo tanto, para transformarlo en un objeto JSon, es muy simple. Me gusta esto:

import org.json.JSONObject; public class JsonTest { public static void main( String[] args ) { Person person = new Person(); person.setName( "Person Name" ); person.setAge( 666 ); JSONObject jsonObj = new JSONObject( person ); System.out.println( jsonObj ); } }

Espero eso ayude.

[editado] Aquí hay otro ejemplo, en este caso usando Jackson: https://brunozambiazi.wordpress.com/2015/08/15/working-with-json-in-java/


Si conoce Jackson 2 , hay un excelente tutorial en mkyong.com sobre cómo convertir objetos Java en JSON y viceversa. Los siguientes fragmentos de código se han tomado de ese tutorial.

Convierta el objeto Java en JSON, writeValue(...) :

ObjectMapper mapper = new ObjectMapper(); Staff obj = new Staff(); //Object to JSON in file mapper.writeValue(new File("c://file.json"), obj); //Object to JSON in String String jsonInString = mapper.writeValueAsString(obj);

Convierte JSON en objeto Java, readValue(...) :

ObjectMapper mapper = new ObjectMapper(); String jsonInString = "{''name'' : ''mkyong''}"; //JSON from file to Object Staff obj = mapper.readValue(new File("c://file.json"), Staff.class); //JSON from URL to Object Staff obj = mapper.readValue(new URL("http://mkyong.com/api/staff.json"), Staff.class); //JSON from String to Object Staff obj = mapper.readValue(jsonInString, Staff.class);

Dependencia Jackson 2:

<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.6.3</version> </dependency>

Para ver el tutorial completo, dirígete al enlace que aparece arriba.


También podemos hacer uso de la dependencia y el complemento a continuación dados en su archivo pom - Hago uso de maven. Con el uso de estos puede generar POJO según su esquema JSON y luego utilizar el código que se proporciona a continuación para rellenar el objeto JSON de solicitud a través del objeto src especificado como parámetro a gson.toJson (Object src) o viceversa. Mira el código a continuación:

Gson gson = new GsonBuilder().create(); String payloadStr = gson.toJson(data.getMerchant().getStakeholder_list()); Gson gson2 = new Gson(); Error expectederr = gson2.fromJson(payloadStr, Error.class);

Y la configuración de Maven:

<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>1.7.1</version> </dependency> <plugin> <groupId>com.googlecode.jsonschema2pojo</groupId> <artifactId>jsonschema2pojo-maven-plugin</artifactId> <version>0.3.7</version> <configuration> <sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory> <targetPackage>com.example.types</targetPackage> </configuration> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>generate</goal> </goals> </execution> </executions> </plugin>


Use GSON para convertir POJO en JSONObject. Consulte aquí.

Para convertir JSONObject a POJO, simplemente llame al método setter en POJO y asigne los valores directamente desde JSONObject.