Java 如何从json中的嵌套数组中选择项?

Java 如何从json中的嵌套数组中选择项?,java,android,json,Java,Android,Json,我试图从youtube预告片中获取JSon(例如名称和来源)。当我试图选择特定数组时,如何准确地解析它,就像我做了一些不正确的事情一样。这是我的密码: public Void parseMovieExtraJson() throws JSONException { JSONObject jsonParentObject = new JSONObject(movieExtrasJSONString); JSONArra

我试图从youtube预告片中获取JSon(例如名称和来源)。当我试图选择特定数组时,如何准确地解析它,就像我做了一些不正确的事情一样。这是我的密码:

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;
    }