所以有一个jsonreqobj,
jsonReqObj = {
"postData" : {
"name":"abc",
"age": 3,
"details": {
"eyeColor":"green",
"height": "172cm",
"weight": "124lb",
}
}
}
还有一个save函数将返回一个字符串。我想使用save函数,但是save json的输入参数应该是postdata中的json。
public String save(JsonObject jsonReqObj) throw IOException {
...
return message
}
下面是我的代码
JsonObject jsonReqPostData = jsonReqObj.get("postData")
String finalMes = save(jsonReqPostData);
但我得到一个错误
com.google.gson.JsonElement cannot be convert to com.google.gson.JsonObject.
2条答案
按热度按时间jrcvhitl1#
JsonObject.get
返回一个JsonElement
-它可能是一个字符串,或布尔值等。唯一的选择是
get
,但投给JsonObject
:如果结果是
postData
是一根绳子等。那可能没问题。它会回来的null
如果jsonReqObj
不包含postData
属性-在这种情况下,强制转换将成功,并保留变量jsonReqPostData
具有空值。另一个可能更清楚的选择是
getAsJsonObject
取而代之的是:ppcbkaq52#
我已经用验证了你的json文件https://jsonlint.com/ 看起来格式不正确,而不是:
应该是:
也许这就是为什么你不能转换成一个物体
注:我会把这作为一个评论,而不是作为一个答案,但我没有足够的声誉t\t