Can't seem to figure this out.
I'm attempting JSON tree manipulation in GSON, but I have a case where I do not know or have a POJO to convert a string into, prior to converting to JsonObject
. Is there a way to go directly from a String
to JsonObject
?
I've tried the following (Scala syntax):
val gson = (new GsonBuilder).create
val a: JsonObject = gson.toJsonTree("""{ "a": "A", "b": true }""").getAsJsonObject
val b: JsonObject = gson.fromJson("""{ "a": "A", "b": true }""", classOf[JsonObject])
but a
fails, the JSON is escaped and parsed as a JsonString
only, and
b
returns an empty JsonObject
.
Any ideas?
use JsonParser; for example:
JsonObject o = JsonParser.parseString("{\"a\": \"A\"}").getAsJsonObject();
Try to use getAsJsonObject()
instead of a straight cast used in the accepted answer:
JsonObject o = new JsonParser().parse("{\"a\": \"A\"}").getAsJsonObject();
String jsonStr = "{\"a\": \"A\"}";
Gson gson = new Gson();
JsonElement element = gson.fromJson (jsonStr, JsonElement.class);
JsonObject jsonObj = element.getAsJsonObject();
The simplest way is to use the JsonPrimitive
class, which derives from JsonElement
, as shown below:
JsonElement element = new JsonPrimitive(yourString);
JsonObject result = element.getAsJsonObject();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With