tutorial studio array gson

studio - gson kotlin



GSON JsonElement.getAsString vs. JsonElement.toString? (1)

Suponiendo que te refieres a JsonElement :

getAsString()

Método de conveniencia para obtener este elemento como un valor de cadena.

Este método accede y devuelve una propiedad del elemento, es decir, el valor del elemento como un objeto String java.

toString()

Devuelve una representación de cadena de este elemento.

Este método es el método "estándar" de java toString , es decir, devuelve una representación humana legible del propio elemento.

Para una mejor comprensión, déjame darte un ejemplo:

import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; public class GsonTest { public static void main(String[] args) { JsonElement jsonElement = new JsonPrimitive("foo"); System.out.println(jsonElement.toString()); System.out.println(jsonElement.getAsString()); jsonElement = new JsonPrimitive(42); System.out.println(jsonElement.toString()); System.out.println(jsonElement.getAsString()); jsonElement = new JsonPrimitive(true); System.out.println(jsonElement.toString()); System.out.println(jsonElement.getAsString()); jsonElement = new JsonObject(); ((JsonObject) jsonElement).addProperty("foo", "bar"); ((JsonObject) jsonElement).addProperty("foo2", 42); System.out.println(jsonElement.toString()); System.out.println(jsonElement.getAsString()); } }

Salida:

"foo" foo 42 42 true true {"foo":"bar","foo2":42} Exception in thread "main" java.lang.UnsupportedOperationException: JsonObject at com.google.gson.JsonElement.getAsString(JsonElement.java:185)

Como puede ver, la salida es en algunos casos bastante similar (o incluso igual), pero difiere en otros casos. getAsString() solo se define para los tipos primitivos (y las matrices que contienen un solo elemento primitivo) y lanza una excepción si se llama, por ejemplo, en un objeto. toString() funcionará en todos los tipos de JsonElement .

Ahora, ¿cuándo deberías usar qué método?

  • Si desea imprimir información de depuración, use toString()
  • Si sabe que está tratando con un tipo primitivo y desea mostrar o escribir el valor en algún lugar, use getAsString()
  • Si no conoce el tipo o si desea trabajar con el valor (es decir, hacer cálculos), no utilice ninguno. En su lugar, compruebe el tipo de elemento y utilice el método apropiado.

¿Cuál es la diferencia entre JsonElement#getAsString() y JsonElement#toString() ?

¿Hay situaciones donde uno debería ser usado sobre el otro?