Lancer une pièce! application avec Scala. Je fais une demande où la réponse devrait être une chaîne JSON. Lors de la vérification du débogueur, le JsonElement renvoie OK avec toutes les informations comme prévu. Cependant, le problème est lorsque j'essaie d'exécuter des méthodes sur ce 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
La seule erreur que je reçois est Unsupported Operation Exception: null
et j'ai essayé ceci sur getAsString
et getAsJsonObject
et getAsJsonPrimitive
Une idée pourquoi cela échoue sur toutes les méthodes? Merci.
Peut-être que votre JsonElement
est un JsonNull
Ce que vous pourriez faire, c'est d'abord vérifier que ce n'est pas le cas en utilisant json.isJsonNull
Sinon, essayez d'obtenir sa représentation String avec json.toString
J'ai eu un problème similaire et j'ai dû changer jsonObject.getAsString () en jsonObject.toString ();
Dans mon cas, j'avais juste besoin d'obtenir l'élément sous forme de chaîne vide s'il est nul, j'ai donc écrit une fonction comme celle-ci:
private String getNullAsEmptyString(JsonElement jsonElement) {
return jsonElement.isJsonNull() ? "" : jsonElement.getAsString();
}
Donc au lieu de
val geocoder = json.getAsString
Vous pouvez simplement utiliser ceci
val geocoder = getNullAsEmptyString(json);
Il retourne "" si l'élément est nul et la chaîne réelle s'il ne l'est pas