Java 如何从json中的嵌套数组中选择项?
我试图从youtube预告片中获取JSon(例如名称和来源)。当我试图选择特定数组时,如何准确地解析它,就像我做了一些不正确的事情一样。这是我的密码:Java 如何从json中的嵌套数组中选择项?,java,android,json,Java,Android,Json,我试图从youtube预告片中获取JSon(例如名称和来源)。当我试图选择特定数组时,如何准确地解析它,就像我做了一些不正确的事情一样。这是我的密码: public Void parseMovieExtraJson() throws JSONException { JSONObject jsonParentObject = new JSONObject(movieExtrasJSONString); JSONArra
public Void parseMovieExtraJson()
throws JSONException {
JSONObject jsonParentObject = new JSONObject(movieExtrasJSONString);
JSONArray trailerJSonArray = jsonParentObject.getJSONArray("trailers");
JSONArray youtubeTrailers = trailerJSonArray.getJSONArray(1);
for(int i = 0; i < youtubeTrailers.length(); i++){
JSONObject youtubeTrailerArray = youtubeTrailers.getJSONObject(i);
MovieTrailer movieTrailer = new MovieTrailer();
movieTrailer.setMovieName(youtubeTrailerArray.getJSONObject("name").toString());
movieTrailer.setTrailerUrl("https://www.youtube.com/watch?v=" + youtubeTrailerArray.getJSONObject("source").toString());
movieTrailerList.add(movieTrailer);
}
return null;
}
Trailes是一个JSON对象,而不是数组。你应该使用
JSONObject trailerJSonArray = jsonParentObject.getJSONObject("trailers");
这是你的错误
“Trailes”不是数组,它是一个包含两个数组的对象:“quicktime”和“youtube”。
您需要做的是将“拖车”作为JSONObject,然后将“youtube”或“quicktime”提取为JSONArray。
通过这样做,您将得到一个预告片列表。预告片似乎是一个JSONObject,而不是一个数组。试试这个:
public Void parseMovieExtraJson()
throws JSONException {
JSONObject jsonParentObject = new JSONObject(movieExtrasJSONString);
JSONObject trailerJSonArray = jsonParentObject.getJSONOBject("trailers");
JSONArray youtubeTrailers = trailerJSonArray.getJSONArray("youtube");
for(int i = 0; i < youtubeTrailers.length(); i++){
JSONObject youtubeTrailerArray = youtubeTrailers.getJSONObject(i);
MovieTrailer movieTrailer = new MovieTrailer();
movieTrailer.setMovieName(youtubeTrailerArray.getJSONObject("name").toString());
movieTrailer.setTrailerUrl("https://www.youtube.com/watch?v=" + youtubeTrailerArray.getJSONObject("source").toString());
movieTrailerList.add(movieTrailer);
}
return null;
}
public Void parseMovieExtraJson()
抛出JSONException{
JSONObject jsonParentObject=新的JSONObject(movieExtrasJSONString);
JSONObject trailerJSonArray=jsonParentObject.getJSONOBject(“拖车”);
JSONArray youtubeTrailers=trailerJSonArray.getJSONArray(“youtube”);
对于(int i=0;i
JSONArray trailerJSonArray = jsonParentObject.getJSONArray("trailers");
public Void parseMovieExtraJson()
throws JSONException {
JSONObject jsonParentObject = new JSONObject(movieExtrasJSONString);
JSONObject trailerJSonArray = jsonParentObject.getJSONOBject("trailers");
JSONArray youtubeTrailers = trailerJSonArray.getJSONArray("youtube");
for(int i = 0; i < youtubeTrailers.length(); i++){
JSONObject youtubeTrailerArray = youtubeTrailers.getJSONObject(i);
MovieTrailer movieTrailer = new MovieTrailer();
movieTrailer.setMovieName(youtubeTrailerArray.getJSONObject("name").toString());
movieTrailer.setTrailerUrl("https://www.youtube.com/watch?v=" + youtubeTrailerArray.getJSONObject("source").toString());
movieTrailerList.add(movieTrailer);
}
return null;
}