Quiero saber si hay alguna API de Java disponible para convertir un objeto POJO a un objeto JSON y viceversa.¿Cómo convertir POJO a JSON y viceversa?
Respuesta
Sí, está el json.org. Echar un vistazo a http://www.json.org/java/index.html
[editado] Imagine que tiene una clase Java simple como esto:
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; }
}
Así, para transformarlo en un objeto JSON, es muy simple. De esta manera:
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 que ayude.
[editado] Aquí hay otro ejemplo, en este caso utilizando Jackson: https://brunozambiazi.wordpress.com/2015/08/15/working-with-json-in-java/
también podemos hacer uso de a continuación se indica la dependencia y el plugin en el archivo de 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 de abajo:
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>
Si usted es consciente de Jackson 2, hay un gran tutorial en sobre cómo convertir objetos Java a JSON y viceversa. Los siguientes fragmentos de código se han tomado de ese tutorial.
Convertir objeto Java a 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);
Convertir JSON a objetos 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);
Jackson 2 Dependencia:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>
Para obtener el tutorial completo, vaya al enlace anterior.
Use GSON para convertir POJO en JSONObject. Refer here.
Para convertir JSONObject a POJO, simplemente llame al método setter en POJO y asigne los valores directamente desde JSONObject.
- 1. ¿Cómo puedo convertir Xml a Json y viceversa en C#
- 2. Cómo convertir Perl objetos en JSON y viceversa
- 3. convertir fuente a cadena y viceversa
- 4. Convertir 0 a 1 y viceversa
- 5. entidades convertir HTML a Unicode y viceversa
- 6. Análisis JSON a Java POJO utilizando GSON
- 7. Java convertir int a hexadecimal y viceversa
- 8. Convertir una imagen a base64 y viceversa
- 9. Serializar un POJO a JSON con GSON
- 10. cómo convertir formatos de fecha php a GMT y viceversa?
- 11. ¿Cómo convertir de archivo binario a objeto reubicable y viceversa?
- 12. Cómo convertir cadena a dirección IP y viceversa
- 13. Cómo convertir byte [] a base64 (y viceversa) en J2ME?
- 14. ¿Cómo PUESTO un Pojo con Jersey Client sin convertir manualmente a JSON?
- 15. Generar muestra JSON de POJO
- 16. C# 4.0: Convertir PDF a byte [] y viceversa
- 17. C# .NET: Convertir icono a byte [] y viceversa
- 18. ¿Convertir NSDate a una cadena de formato largo y viceversa?
- 19. Convertir píxeles a pulgadas y viceversa en C#
- 20. Convertir cadena JRuby a matriz de bytes Java, y viceversa
- 21. Convertir codificación ascii a int y viceversa en python (rápidamente)
- 22. Biblioteca para convertir native2ascii y viceversa
- 23. cómo convertir JSON a cadena
- 24. Convertir DataTable en archivo XML y viceversa
- 25. Convertir PDF de varias páginas a PNG y viceversa (Linux)
- 26. ¿Mejores formas de convertir XPS a PDF (y viceversa)?
- 27. Convertir NSData a JSON
- 28. Deserializar JSON a ArrayList <POJO> usando Jackson
- 29. Convertir matriz a JSON
- 30. Jackson - JSON para POJO con entradas múltiples
Thnx pero ... quiero que si tengo un Pojo, puedo pasar el objeto pojo y de esta manera la biblioteca construye el objeto JSON ... ¿puedo hacer eso? ¿Puedes darme un ejemplo? muchas cosas – Mariah
@ Bruno ¿Cómo podemos obtener los valores de List o Set usando este JSONObject? –
Me gusta este enfoque, desafortunadamente no funcionó para mí. Recibí el mensaje de error: "El constructor JSONObject (Person) no está definido" ... ¿alguna idea de por qué? Lo estoy llamando en algún código de Android ... es simple Java. Gracias – gnB