No necesitas usar JsonObject
. Debería utilizar Gson para convertir a / desde cadenas JSON y sus propios objetos Java.
Consulte la Guía del usuario de Gson :
(Publicación por entregas)
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]
(Deserialización)
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
es una representación intermedia. En el 99% de los casos de uso, solo debería preocuparse por representar sus datos como un objeto Java o como una cadena que contiene JSON.Puede convertirlo en un JavaBean si lo desea usando:
Para usar JsonObject, que es más flexible, use lo siguiente:
Que es equivalente a lo siguiente:
fuente
JsonObject jo = jsonParser.parse(json).getAsJsonObject();
yAssert.assertTrue(jo.get("Success").getAsBoolean());
Para hacerlo de una manera más sencilla, considere a continuación:
fuente
Hago esto y funcionó.
fuente
Parece que la respuesta anterior no respondió la pregunta por completo.
Creo que estás buscando algo como a continuación:
donde mi respuesta es algo como esto:
Como puede ver, el nombre de la variable debe ser el mismo que la representación de cadena Json de la clave en el par clave-valor. Esto convertirá automáticamente su cadena gson a JsonObject.
fuente
@SerializedName("Success")
por ejemplo, en su lugar.fuente
fuente
fuente
Tenga en cuenta que a partir de Gson 2.8.6 , el método de instancia
JsonParser.parse
ha quedado obsoleto y se reemplazó por el método estáticoJsonParser.parseString
:fuente