Vous n'avez pas besoin d'utiliser JsonObject
. Vous devez utiliser Gson pour convertir vers / depuis des chaînes JSON et vos propres objets Java.
Consultez le guide de l'utilisateur Gson :
(Sérialisation)
Gson gson = new Gson();
gson.toJson(1); // prints 1
gson.toJson("abcd"); // prints "abcd"
gson.toJson(new Long(10)); // prints 10
int[] values = { 1 };
gson.toJson(values); // prints [1]
(Désérialisation)
int one = gson.fromJson("1", int.class);
Integer one = gson.fromJson("1", Integer.class);
Long one = gson.fromJson("1", Long.class);
Boolean false = gson.fromJson("false", Boolean.class);
String str = gson.fromJson("\"abc\"", String.class);
String anotherStr = gson.fromJson("[\"abc\"]", String.class)
JsonObject
est une représentation intermédiaire. Dans 99% des cas d'utilisation, vous ne devriez vraiment vous soucier que de représenter vos données en tant qu'objet Java ou en tant que chaîne contenant JSON.Vous pouvez le convertir en JavaBean si vous le souhaitez en utilisant:
Pour utiliser JsonObject, qui est plus flexible, utilisez ce qui suit:
Ce qui équivaut à ce qui suit:
la source
JsonObject jo = jsonParser.parse(json).getAsJsonObject();
etAssert.assertTrue(jo.get("Success").getAsBoolean());
Pour le faire de manière plus simple, considérez ci-dessous:
la source
Je fais ça et ça a marché.
la source
On dirait que la réponse ci-dessus n'a pas répondu complètement à la question.
Je pense que vous cherchez quelque chose comme ci-dessous:
où ma réponse est quelque chose comme ceci:
Comme vous pouvez le voir, le nom de la variable doit être identique à la représentation sous forme de chaîne Json de la clé dans la paire clé / valeur. Cela convertira automatiquement votre chaîne gson en JsonObject.
la source
@SerializedName("Success")
par exemple à la place.la source
la source
la source
Notez qu'à partir de Gson 2.8.6 , la méthode d'instance
JsonParser.parse
a été déconseillée et remplacée par la méthode statiqueJsonParser.parseString
:la source