use*_*054 5 exception classcastexception gson
当我尝试从列表中对json对象进行parjse时,我收到错误com.google.gson.JsonPrimitive无法强制转换为com.google.gson.JsonObject
输入:
{
"r$contentRatings": [
{
"r$scheme": "urn:rt",
"r$rating": "criticSummaryScore=-1,criticSummaryCount=0,criticSummaryCertified=false,criticSummaryRotten=false,fanSummaryScore=75,fanSummaryCount=4"
}
]
}
Run Code Online (Sandbox Code Playgroud)
码:
JsonElement elem = null;
elem = jsonObject.get("r$contentRatings");
if(elem != null) {
JsonArray contentRatingsList = elem.getAsJsonArray();
if(contentRatingsList != null) {
for(int i=0; i< contentRatingsList.size(); i++) {
JsonObject scheme =contentRatingsList.get(i).getAsJsonObject().getAsJsonObject("r$scheme");
JsonObject rating =contentRatingsList.get(i).getAsJsonObject().getAsJsonObject("r$rating");
JsonArray subRatings = contentRatingsList.get(i).getAsJsonObject().getAsJsonObject("r$subRatings").getAsJsonArray();
Run Code Online (Sandbox Code Playgroud)
错误:
在for循环中,当我尝试jsonobject
从列表中访问时,r$scheme
我收到一个错误
com.google.gson.JsonPrimitive无法强制转换为com.google.gson.JsonObject
你能告诉我如何摆脱这个错误..
简单地说,在你的json中
{
"r$contentRatings": [
{
"r$scheme": "urn:rt",
"r$rating": "criticSummaryScore=-1,criticSummaryCount=0,criticSummaryCertified=false,criticSummaryRotten=false,fanSummaryScore=75,fanSummaryCount=4"
}
]
}
Run Code Online (Sandbox Code Playgroud)
元素r$scheme
和r$rating
不JSON对象,但JSON元.
使用
JsonPrimitive scheme = contentRatingsList.get(i).getAsJsonObject().getAsJsonPrimitive("r$scheme");
JsonPrimitive rating = contentRatingsList.get(i).getAsJsonObject().getAsJsonPrimitive("r$rating");
Run Code Online (Sandbox Code Playgroud)
另外,请注意,您r$subRatings
的json中没有命名元素,因此您NullPointerException
在下一行中为自己设置了一个元素.
归档时间: |
|
查看次数: |
18450 次 |
最近记录: |