web-dev-qa-db-fra.com

Comment convertir un Java Object en JSONObject?

j'ai besoin de convertir un POJO en JSONObject (org.json.JSONObject)

Je sais comment le convertir en fichier:

    ObjectMapper mapper = new ObjectMapper();
    try {
        mapper.writeValue(new File(file.toString()), registrationData);
    } catch (JsonGenerationException e) {
        e.printStackTrace();
    } catch (JsonMappingException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

Mais je ne veux pas de fichier cette fois.

9
J. K.

Si ce n'est pas un objet trop complexe, vous pouvez le faire vous-même , sans aucune bibliothèque. Voici un exemple de comment:

public class DemoObject {

    private int mSomeInt;
    private String mSomeString;

    public DemoObject(int i, String s) {

        mSomeInt = i;
        mSomeString = s;
    }

    //... other stuff

    public JSONObject toJSON() {

        JSONObject jo = new JSONObject();
        jo.put("integer", mSomeInt);
        jo.put("string", mSomeString);

        return jo;
    }
}

Dans du code:

DemoObject demo = new DemoObject(10, "string");
JSONObject jo = demo.toJSON();

Bien sûr, vous pouvez également utiliser Google Gson pour des choses plus complexes et une implémentation moins lourde si cela ne vous dérange pas la dépendance supplémentaire.

7
Philipp Jahoda

L'exemple ci-dessous a été tiré de tutoriel mkyongs . Au lieu d'enregistrer dans un fichier, vous pouvez simplement utiliser le String json comme représentation json de votre POJO.

import Java.io.FileWriter;
import Java.io.IOException;
import com.google.gson.Gson;

public class GsonExample {
    public static void main(String[] args) {

        YourObject obj = new YourOBject();
        Gson gson = new Gson();
        String json = gson.toJson(obj); //convert 
        System.out.println(json);

    }
}
11
user1043279

Si nous analysons toutes les classes de modèle de serveur au format GSON, c'est le meilleur moyen de convertir Java en JSONObject. Dans le code ci-dessous, SampleObject est un Java objet qui est converti en JSONObject.

SampleObject mSampleObject = new SampleObject();
String jsonInString = new Gson().toJson(mSampleObject);
JSONObject mJSONObject = new JSONObject(jsonInString);
4