0

これを出力するこのjson URLがあります(スニペット)

{
   "status":true,
   "result":{
      "message":"Successfully retrieved the daily feed.",
      "items":{
         "1376438400":[
            {
               "code":"DjCr3N3o",
               "slug":"soulja-boy-gets-kicked-off-airplane",
               "cdn_screenshot_path":"screenshots\/2013\/08\/DjCr3N3o.png",
               "title":"Soulja Boy Gets Kicked Off Airplane!",
               "hits":"457",
               "date_added":"1376507797"
            },
            {
               "code":"7V9eOVpX",
               "slug":"dr.-dre-and-suge-knight-baby-mama-michelle-surprise-performance-she-sounds-like-a-chipmunk-but-sings-like-an-angel",
               "cdn_screenshot_path":"screenshots\/2013\/08\/7V9eOVpX.png",
               "title":"Dr. Dre AND Suge Knight Baby Mama Michel'le Surprise Performance! (She Sounds Like A Chipmunk But Sings Like An Angel!)",
               "hits":"525",
               "date_added":"1376505010"
            },

            {
               "code":"8ovO203r",
               "slug":"headless-snake-bites-itself-in-the-butt",
               "cdn_screenshot_path":"screenshots\/2013\/08\/8ovO203r.png",
               "title":"Headless Snake Bites Itself In The Butt!",
               "hits":"361",
               "date_added":"1376485812"
            }
         ],
         "1376352000":[
            {
               "code":"9b9jR6qs",
               "slug":"show-you-how-to-do-this-son-chris-paul-hits-4-straight-jumpers-on-colleges-best-point-guards",
               "cdn_screenshot_path":"screenshots\/2013\/08\/9b9jR6qs.jpg",
               "title":"Show You How To Do This Son! Chris Paul Hits 4 Straight Jumpers On College's BEST Point Guards!",
               "hits":"979",
               "date_added":"1376443810"
            },
            {
               "code":"p6l5pwg8",
               "slug":"ttbnez-fck-da-opp-music-video",
               "cdn_screenshot_path":"screenshots\/2013\/08\/p6l5pwg8.png",
               "title":"TTBNEZ - F*ck Da Opp [Music Video]",
               "hits":"316",
               "date_added":"1376419812"
            },
            {
               "code":"haxUoUVt",
               "slug":"strip-life-the-reality-series-feat.-lanipop-entyce-trailer",
               "cdn_screenshot_path":"screenshots\/2013\/08\/haxUoUVt.png",
               "title":"Strip Life: The Reality Series (feat. Lanipop, Entyce) [Trailer]",
               "hits":"426",
               "date_added":"1376419214"
            }
         ],

私が抱えている問題は、その形式のためにそれを解析する方法と、「コード」、「スラッグ」、「タイトル」などのデータに到達する方法を理解することです。これは私がこれまでに持っているものですが、1つではなく2つのループが必要になる可能性があるため、間違っているようです。

これは私がこれまでに持っているものです

    @Override
    protected Void doInBackground(Void... params) {
        // Create the array 
        arraylist = new ArrayList<HashMap<String, String>>();
        // Retrive JSON Objects from the given website URL in JSONfunctions.class
        jsonobject = JSONfunctions
                .getJSONfromURL("http://api.hoodplug.com/v1/videos/daily_feed?per_page=5&offset=0&format=json");

        try {
            // Locate the array name
            jsonarray = jsonobject.getJSONArray("item");

            for (int i = 0; i < jsonarray.length(); i++) {
                HashMap<String, String> map = new HashMap<String, String>();
                jsonobject = jsonarray.getJSONObject(i);
                // Retrive JSON Objects
                map.put("code", jsonobject.getString("code"));
                map.put("slug", jsonobject.getString("slug"));
                map.put("title", jsonobject.getString("title"));
                // Set the JSON Objects into the array
                arraylist.add(map);
            }
        } catch (JSONException e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }
        return null;
    }
4

1 に答える 1

1

あなたはここで少しポイントを逃しています!

ここで、最初の json オブジェクトを取得します:

 jsonobject = JSONfunctions
                .getJSONfromURL("http://api.hoodplug.com/v1/videos/daily_feed?per_page=5&offset=0&format=json");

このjsonオブジェクトは、ステータスと結果を含む大きなJSONオブジェクト全体ですが、結果オブジェクト内のJSON配列に直接アクセスしたい! これを使用して:

// Locate the array name
jsonarray = jsonobject.getJSONArray("items");

正しいことは、最初に大きなjsonオブジェクトから結果オブジェクトを取得する必要があることです

JSONObject resultObject = jsonobject.getJSONObject("result");

次に、resultObject を使用して配列を取得します。

try {
            // Locate the array name
            jsonarray = resultObject .getJSONArray("item");

            for (int i = 0; i < jsonarray.length(); i++) {
                HashMap<String, String> map = new HashMap<String, String>();
                jsonobject = jsonarray.getJSONObject(i);
                // Retrive JSON Objects
                map.put("code", jsonobject.getString("code"));
                map.put("slug", jsonobject.getString("slug"));
                map.put("title", jsonobject.getString("title"));
                // Set the JSON Objects into the array
                arraylist.add(map);
            }
        } catch (JSONException e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }

私の答えを理解していただければ幸いですが、私の答えについて他に質問がある場合は、お気軽に質問してください。:)

于 2013-08-15T04:46:13.173 に答える