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

新手上路,请多包涵

似乎无法弄清楚这一点。我正在尝试在 GSON 中进行 JSON 树操作,但在转换为 JsonObject 之前,我不知道或没有 POJO 可以将字符串转换为。有没有办法直接从 StringJsonObject

我尝试了以下(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])

but a fails, the JSON is escaped and parsed as a JsonString only, and b returns an empty JsonObject .

有任何想法吗?

原文由 7zark7 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 500
2 个回答

使用 JsonParser;例如:

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

原文由 Dallan Quass 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

原文由 maverick 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题