writes read play framework scala playframework gson

read - scala import play json



GSON JsonObject "Excepción de operación no admitida: nula" getAsString (3)

Ejecutando un juego! Aplicación con Scala. Estoy haciendo una solicitud donde se espera que la respuesta sea una cadena JSON. Al verificar el depurador, JsonElement devuelve OK con toda la información como se esperaba. Sin embargo, el problema es cuando trato de ejecutar métodos en ese JsonElement.

val json = WS.url("http://maps.googleapis.com/maps/api/geocode/json?callback=?&sensor=true&address=%s", startAddress+","+startCity+","+startProvince).get.getJson val geocoder = json.getAsString

El único error que recibo es Unsupported Operation Exception: null y lo he intentado en getAsString y getAsJsonObject y getAsJsonPrimitive

¿Alguna idea de por qué está fallando en todos los métodos? Gracias.


En mi caso, solo necesitaba obtener el elemento como una cadena vacía si es nulo, así que escribí una función como esta:

private String getNullAsEmptyString(JsonElement jsonElement) { return jsonElement.isJsonNull() ? "" : jsonElement.getAsString(); }

Entonces, en lugar de

val geocoder = json.getAsString

Puedes usar esto

val geocoder = getNullAsEmptyString(json);

Devuelve "" si el elemento es nulo y la cadena real si no es


Tal vez sea su JsonElement es un JsonNull

Lo que podrías hacer es verificar primero que no está usando json.isJsonNull

De lo contrario, intente obtener su representación de cadena con json.toString


Tuve un problema similar y tuve que cambiar jsonObject.getAsString () a jsonObject.toString ();