Gson:直接将 String 转换为 JsonObject(无 POJO)

2022-08-31 04:59:52

似乎无法弄清楚这一点。我正在尝试在GSON中进行JSON树操作,但是我有一个情况,在转换为之前,我不知道或有一个POJO将字符串转换为。有没有办法直接从 a 到 ?JsonObjectStringJsonObject

我尝试了以下(Scala语法):

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])

但失败,JSON 被转义并解析为 only,并返回一个空的 .aJsonStringbJsonObject

有什么想法吗?


答案 1

使用JsonParser;例如:

JsonObject o = JsonParser.parseString("{\"a\": \"A\"}").getAsJsonObject();

答案 2

尝试使用而不是在接受的答案中使用的直接转换:getAsJsonObject()

JsonObject o = new JsonParser().parse("{\"a\": \"A\"}").getAsJsonObject();