Comment convertir POJO en JSON et vice versa?

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

37
demandé sur Will 2012-03-07 03:11:27

4 réponses

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 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 aidera.

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

37
répondu bruno.zambiazi 2016-03-15 20:04:35

nous pouvons également utiliser la dépendance et le plugin donnés 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 peupler l'objet request JSON via l'objet src spécifié comme 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 réglages 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>
16
répondu akshaymani 2014-08-26 18:42:45

si vous connaissez Jackson 2 , il y a un grand tutoriel à mkyong.com on how to convert Java Objects to JSON and vice versa. Les extraits de code suivants ont été tirés de ce tutoriel.

Convertissez Java object 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 en JSON pour 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 Dépendance:

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

pour le tutoriel complet, allez sur le lien ci-dessus.

10
répondu Bilesh Ganguly 2016-03-29 05:07:06

utilisez GSON pour convertir POJO en JSONObject. voir ici.

pour convertir JSONObject en POJO, il suffit d'appeler la méthode setter dans le POJO et assigner les valeurs directement à partir du JSONObject.

-2
répondu Jayaraj PS 2017-05-23 12:18:25