2017-03-07 8 views
0
{ 
    "kind": "youtube#channelListResponse", 
    "etag": "\"uQc-MPTsstrHkQcRXL3IWLmeNsM/RcyuNr1qwNrdSKCHUL-TlYislxI\"", 
    "pageInfo": { 
    "totalResults": 1, 
    "resultsPerPage": 1 
}, 
"items": [ 
{ 
    "kind": "youtube#channel", 
    "etag": "\"uQc-MPTsstrHkQcRXL3IWLmeNsM/06AiodZH5j6AmLIkxRzlAs2py9c\"", 
    "id": "UCfba9cyRs4aRiKaGi11d2Ig", 
    "statistics": { 
     "viewCount": "131077848", 
     "commentCount": "8", 
     "subscriberCount": "222353", 
     "hiddenSubscriberCount": false, 
     "videoCount": "5185" 
    } 
    } 
] 
} 

これは私が解析したいjsonです。 viewCount、subscriberCount、およびvideoCountを解析したいと思います。jsonを使用しているAndroidのparse youtube購読者

このように試しましたが、「JSONObjectをJSONArrayに変換できません」というエラーが表示されます。 「統計情報」内のコンテンツを取得するにはどうすればよいですか? (私の悪い英語のため申し訳ありませんが)

答えて

1

「統計は、」エラーが出番それはだ、代わりにJSONArrayのJSONObjectです。

JSONObject jsonObject1 = new JSONObject(jsonStr); 
JSONArray jsonArray1 = jsonObject1.getJSONArray("items"); 
JSONObject jsonObject2 = jsonArray1.getJSONObject(0); 
JSONObject jsonObject3 = jsonObject2.getJSONObject("statistics"); 
String viewCount = jsonObject3.getString("viewCount"); 
String subscriberCount = jsonObject3.getString("subscriberCount"); 
String videoCount = jsonObject3.getString("videoCount"); 
0

統計情報はJSON配列ではなく、JSONオブジェクトです。

0

statisticは、{で始まるので、JSONObjectではなく、JSONArrayです。

JSONObject jsonObject1 = new JSONObject(json); 
JSONArray jsonArray1 = jsonObject1.getJSONArray("items"); 
JSONObject jsonObject2 = jsonArray1.getJSONObject(0); 
JSONObject jsonObject3 = jsonObject2.getJSONObject("statistics"); 

と値を読み取るために、commentCountため例えば:

int commentCount = jsonObject3.getInt("commentCount"); 
あなたはこれを試してみてください代わりに getJSONObject("statistic")

getJSONArray("statistic")にしてみてください

関連する問題