Comment convertir POJO en JSON et vice versa?


Je veux savoir s'il existe une API Java disponible pour convertir un objet POJO en objet JSON et vice versa.

Author: Will, 2012-03-07

4 answers

Oui, il y a le json.org. Jetez un oeil à http://www.json.org/java/index.html

[édité] Imaginez que vous ayez une classe Java simple comme celle-ci:

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; }

}

Donc, pour le transformer en un objet JSon, c'est très simple. Comme ceci:

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 );
    }

}

J'espère que ça aide.

[édité] Ici, il y a un autre exemple, dans ce cas en utilisant Jackson: https://brunozambiazi.wordpress.com/2015/08/15/working-with-json-in-java/

 37
Author: bruno.zambiazi, 2016-03-15 20:04:35

Nous pouvons également utiliser la dépendance et le plugin ci - dessous dans votre fichier pom-Je fais usage de maven. Avec l'utilisation de ceux-ci, vous pouvez générer des POJO selon votre schéma JSON, puis utiliser le code donné ci-dessous pour remplir l'objet request JSON via l'objet src spécifié en tant que paramètre à gson.toJson (Objet src) ou vice-versa. Regardez le code ci-dessous:

Gson gson = new GsonBuilder().create();
String payloadStr = gson.toJson(data.getMerchant().getStakeholder_list());

Gson gson2 = new Gson();
Error expectederr = gson2.fromJson(payloadStr, Error.class);

Et les paramètres 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>
 16
Author: akshaymani, 2014-08-26 18:42:45

Si vous connaissez Jackson 2 , il existe un excellent tutoriel sur mkyong.com sur la façon de convertir des objets Java en JSON et vice versa. Les extraits de code suivants ont été tirés de ce tutoriel.

Convertir un objet 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);

Convertir JSON en objet 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 La Dépendance:

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

Pour le tutoriel complet, veuillez vous rendre sur le lien ci-dessus.

 10
Author: Bilesh Ganguly, 2016-03-29 05:07:06

Utilisez GSON pour convertir POJO en JSONObject. Se référer ici.

Pour convertir JSONObject en POJO, appelez simplement la méthode setter dans le POJO et affectez les valeurs directement à partir du JSONObject.

 -2
Author: Jayaraj PS, 2017-05-23 12:18:25