web-dev-qa-db-fra.com

Comment convertir un JSONObject en objet classe?

J'ai besoin de convertir un JSONObject en objet Location à l'aide des bibliothèques gson pour un projet Android pour moi. Je ne sais pas comment faire cela. Quelqu'un peut-il m'aider avec cela. Merci d'avance .

J'ai un code quelque chose comme

JSONArray input = new JSONArray(extras.getString("loc_json"));

Je voulais convertir le JSONObject extrait du JSONArray en un objet de classe Location. Je voulais juste savoir s'il existe une fonction qui le fait directement.

Je m'excuse si j'ai mal formulé la question. Comme je n'ai pas la fonction directe, je l'ai fait de cette façon.

 loc_temp = (Location) gson.fromJson(input.getJSONObject(i).toString(), Location.class);;

Désolé pour la question stupide.

20
daemon54

Voici un tutoriel pour GSON - Je pense que cela devrait aider à renforcer votre compréhension. L'analyse se fait essentiellement comme ceci:

String mJsonString = "...";
JsonParser parser = new JsonParser(); 
JsonElement mJson =  parser.parse(mJsonString);
Gson gson = new Gson();
MyDataObject object = gson.fromJson(mJson, MyDataObject.class);
33
JRaymond

si vous voulez toujours utiliser org.json.JSONObject:

org.json.JSONObject o;
ObjectMapper m = new ObjectMapper();
MyClass myClass = m.readValue(o.toString(), MyClass.class);
6
electrobabe

utilisez com.google.gson.JsonObject & JsonArray au lieu de org.json. *

comme ça :

Gson gson = new Gson();
Type typeOfT = new TypeToken<List<Location.class>>(){}.getType();
JsonParser parser = new JsonParser();
JsonObject jo = (JsonObject) parser.parse(jsonStr);
JsonArray ja = jo.getAsJsonArray("memberName");
list = gson.fromJson(ja, typeOfT);
2
JeeHom