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