1

i have a json like this,

{
  "id": 293,
  "type": "post",
  "slug": "a-box-rd",
  "url": "http:\/\/www.godigi.tv\/blog\/2013\/07\/01\/a-box-rd\/",
  "status": "publish",
  "title": "A Box R&D",
  "title_plain": "A Box R&D",
  "content": "",
  "excerpt": "",
  "date": "2013-07-01 09:09:25",
  "modified": "2013-07-01 09:18:09",
  "categories": [
    {
      "id": 15,
      "slug": "info",
      "title": "Info",
      "description": "",
      "parent": 0,
      "post_count": 7
    }
  ],
  "tags": [

  ],
  "author": {
    "id": 2,
    "slug": "eka2013",
    "name": "ekawijaya",
    "first_name": "",
    "last_name": "",
    "nickname": "ekawijaya",
    "url": "",
    "description": ""
  },
  "comments": [

  ],
  "attachments": [
    {
      "id": 298,
      "url": "http:\/\/www.godigi.tv\/wp-content\/uploads\/2013\/07\/rnd.jpg",
      "slug": "rnd",
      "title": "rnd",
      "description": "",
      "caption": "",
      "parent": 293,
      "mime_type": "image\/jpeg",
      "images": {
        "full": {
          "url": "http:\/\/www.godigi.tv\/wp-content\/uploads\/2013\/07\/rnd.jpg",
          "width": 528,
          "height": 493
        },
        "thumbnail": {
          "url": "http:\/\/www.godigi.tv\/wp-content\/uploads\/2013\/07\/rnd-150x150.jpg",
          "width": 150,
          "height": 150
        },
        "medium": {
          "url": "http:\/\/www.godigi.tv\/wp-content\/uploads\/2013\/07\/rnd-300x280.jpg",
          "width": 300,
          "height": 280
        },
        "large": {
          "url": "http:\/\/www.godigi.tv\/wp-content\/uploads\/2013\/07\/rnd.jpg",
          "width": 528,
          "height": 493
        },
        "post-thumbnail": {
          "url": "http:\/\/www.godigi.tv\/wp-content\/uploads\/2013\/07\/rnd-150x150.jpg",
          "width": 150,
          "height": 150
        },
        "custom-small": {
          "url": "http:\/\/www.godigi.tv\/wp-content\/uploads\/2013\/07\/rnd-160x90.jpg",
          "width": 160,
          "height": 90
        },
        "custom-medium": {
          "url": "http:\/\/www.godigi.tv\/wp-content\/uploads\/2013\/07\/rnd-320x180.jpg",
          "width": 320,
          "height": 180
        },
        "custom-large": {
          "url": "http:\/\/www.godigi.tv\/wp-content\/uploads\/2013\/07\/rnd-528x360.jpg",
          "width": 528,
          "height": 360
        },
        "custom-full": {
          "url": "http:\/\/www.godigi.tv\/wp-content\/uploads\/2013\/07\/rnd.jpg",
          "width": 528,
          "height": 493
        }
      }
    }
  ],
  "comment_count": 0,
  "comment_status": "open",
  "custom_fields": {
    "dp_video_poster": [
      "http:\/\/www.godigi.tv\/wp-content\/uploads\/2013\/07\/rnd.jpg"
    ],
    "views": [
      "7"
    ],
    "likes": [
      "0"
    ],
    "dp_video_file": [
      "http:\/\/www.godigi.tv\/wp-content\/uploads\/2013\/07\/03-A-BOX-RD-ada-pak-bulit.mp4"
    ]
  }
},

and i use the code like this =>

jsonarray = jsonobject.getJSONArray("posts");

            for (int i = 0; i < jsonarray.length(); i++) {
                HashMap<String, String> map = new HashMap<String, String>();
                jsonobject = jsonarray.getJSONObject(i);

                JSONObject jsoncustom;
                jsoncustom = jsonobject.getJSONObject("custom_fields");
                JSONArray araycus = jsoncustom.getJSONArray("dp_video_poster");
                String urlvid = araycus.getString(i);


                // Retrive JSON Objects
                map.put("title", jsonobject.getString("title"));
                map.put("date", jsonobject.getString("date"));

                map.put("dp_video_poster", urlvid);
                // Set the JSON Objects into the array
                arraylist.add(map);
            }

what i expect for output is :

title =

date =

poster (this is in folder dp_video_poster) =

video (this is in folder dp_video_file) =

can any body help me with this?

thanks in advance

5
  • What is happening instead of your desired behavior? Are you getting a NullPointerException? Commented Aug 3, 2013 at 19:45
  • Can you provide the valid json. Use try{}catch{} to find the problem. Commented Aug 3, 2013 at 19:47
  • 1
    Well '{' and '}' indicate an object and you're fetching an array from the first line. Commented Aug 3, 2013 at 19:47
  • Use gSon library by Google to parse json, it will be easier to parse and get Java objects that way. Commented Aug 3, 2013 at 20:13
  • could you give the link to the full json?I don't think this is the full json data you give to us Commented Aug 3, 2013 at 20:39

1 Answer 1

5

This function is to read your json file. And remove colon which at the end of your json. Verify your json on this site http://jsonviewer.stack.hu/

public String readFile(String filepath) throws IOException {
    File f = new File(filepath);
    FileInputStream in = new FileInputStream(f);
    int size = in.available();
    byte c[] = new byte[size];
    for (int i = 0; i < size; i++) {
        c[i] = (byte) in.read();
    }
    String filedata = new String(c, "utf-8");
    return filedata;
}

This Function will parse your json file

public void parseJson() {
    try {
        String filepath = Environment.getExternalStorageDirectory()
                + "/j/test.json";
        String data = readFile(filepath);

        JSONObject filedata = new JSONObject(data);
        JSONArray categories = (JSONArray) filedata.get("categories");
        JSONObject categorie = (JSONObject) categories.get(0);
        JSONObject custom_field = (JSONObject) filedata
                .get("custom_fields");
        JSONArray dp_video_posters = (JSONArray) custom_field
                .get("dp_video_poster");

        JSONArray dp_video_files = (JSONArray) custom_field
                .get("dp_video_file");

        // getting title
        String maintitle = (String) filedata.get("title");
        // getting title from categories
        String title = (String) categorie.get("title");
        // getting date
        String date = (String) filedata.get("date");
        // getting poster
        String dp_video_poster = (String) dp_video_posters.get(0);
        // getting video
        String dp_video_file = (String) dp_video_files.get(0);



    } catch (JSONException e) {
        e.printStackTrace();

    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }

}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.