Desidero sapere se è disponibile un'API Java per convertire un oggetto POJO in un oggetto JSON e viceversa.Come convertire POJO in JSON e viceversa?
risposta
Sì, c'è il json.org. Date un'occhiata a http://www.json.org/java/index.html
[a cura] Immaginate di avere una semplice classe Java in questo modo:
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; }
}
Così, per trasformarlo in un oggetto JSON, è molto semplice. Come questo:
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);
}
}
Spero che aiuti.
[a cura] Qui non c'è altro esempio, in questo caso utilizzando Jackson: https://brunozambiazi.wordpress.com/2015/08/15/working-with-json-in-java/
Possiamo anche fare uso di seguito indicato dipendenza e plug-in nel file pom - Faccio uso di Maven. Con l'uso di questi puoi generare POJO secondo lo schema JSON e quindi utilizzare il codice fornito di seguito per popolare l'oggetto JSON di richiesta tramite l'oggetto src specificato come parametro su gson.toJson (Object src) o viceversa. Guardate il codice qui sotto:
Gson gson = new GsonBuilder().create();
String payloadStr = gson.toJson(data.getMerchant().getStakeholder_list());
Gson gson2 = new Gson();
Error expectederr = gson2.fromJson(payloadStr, Error.class);
E le impostazioni di 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>
Se siete a conoscenza di Jackson 2, c'è un grande tutorial su come convertire oggetti Java a JSON e viceversa. I seguenti snippet di codice sono stati presi da questo tutorial.
Convertire oggetto 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);
Converti JSON per oggetto 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 Dipendenza:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>
Per il tutorial completo, vai al link sopra riportato.
Utilizzare GSON per convertire POJO in JSONObject. Refer here.
Per convertire JSONObject in POJO, basta chiamare il metodo setter nel POJO e assegnare i valori direttamente da JSONObject.
- 1. Come posso convertire QVariant in QString e viceversa in Qt?
- 2. Come convertire Drawable in int e viceversa in Android
- 3. Convertire 0 a 1 e viceversa
- 4. Come convertire Joda-Time DateTime in java.util.Date e viceversa?
- 5. come convertire joda datetime in String e viceversa
- 6. Jquery convertire intero a stringa e viceversa
- 7. Come convertire POJO in JSON in Play framework 2.3.x (Scala)?
- 8. Genera campione JSON da POJO
- 9. POJO a JSON in Play framework
- 10. Come convertire da file binario a oggetto rilocabile e viceversa?
- 11. Convertire una sequenza di sequenze in un dizionario e viceversa
- 12. Quanti modi per convertire bitmap in stringa e viceversa?
- 13. Mappatura da JSON a POJO senza distinzione tra maiuscole e minuscole senza cambiare il POJO
- 14. Come convertire HttpEntity in JSON?
- 15. Come convertire JSON in stringa?
- 16. Convertire una mappa <String, String> a un POJO
- 17. Come convertire JSON in oggetto
- 18. Come convertire JSON in datatable?
- 19. Convalida JSON all'interno di un POJO
- 20. conversione dell'immagine in matrice e viceversa?
- 21. codifica da utilizzare per convertire byte array String e viceversa
- 22. Modificare json con GSON senza utilizzare un POJO
- 23. Deserializzare JSON in ArrayList <POJO> utilizzando Jackson
- 24. Crea JSONObject da POJO
- 25. Come posso deseralizzare l'oggetto json nella classe java pojo?
- 26. Come posso convertire una stringa in una stringa codificata in UTF-8 e viceversa?
- 27. Come convertire le schede in spazi e viceversa in un file esistente
- 28. Converti un'immagine in base64 e viceversa
- 29. Come convertire un array JSON in yii2
- 30. come convertire i formati di data php in GMT e viceversa?
Thnx ma ... voglio che se ottengo un Pojo, posso passare l'oggetto pojo e in questo modo la libreria costruisce l'oggetto JSON ... può farlo? puoi darmi un esempio? Grazie mille – Mariah
@Bruno Come possiamo ottenere i valori di List o Set usando questo JSONObject. –
Mi piace questo approccio - sfortunatamente non ha funzionato per me. Ho ricevuto il messaggio di errore: "Il costruttore JSONObject (Person) non è definito" .. qualche idea del perché? Lo chiamo in qualche codice Android .. è semplicemente Java. Grazie – gnB