可以在GSON中尝试JSON树操作,但在转换为 JsonObject
之前,我有一个我不知道或有POJO将字符串转换为的情况 . 有没有办法直接从 String
到 JsonObject
?
我尝试了以下(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])
但 a
失败,JSON被转义并仅解析为 JsonString
,而 b
返回空 JsonObject
.
有任何想法吗?
8 回答
使用JsonParser;例如:
尝试使用
getAsJsonObject()
而不是在接受的答案中使用的直接演员:最简单的方法是使用
JsonPrimitive
类,它派生自JsonElement
,如下所示:刚遇到同样的问题 . 您可以为
JsonElement
类编写一个简单的自定义反序列化器:我相信这是一个更简单的方法:
然后你就可以这样称呼它:
这样所有的hibernate对象都将自动转换 .
遇到了在EXTJS 4.X中远程排序数据存储的场景,其中字符串作为JSON数组(仅1个对象)发送到服务器 .
类似于先前为简单字符串提供的内容,只需要在JsonObject之前首先转换为JsonArray .
来自客户的字符串: [{"property":"COLUMN_NAME","direction":"ASC"}]