get value in array in json object android
18,751
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();
}
}
Author by
zacky
Updated on June 04, 2022Comments
-
zacky almost 2 years
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
-
Jonathan over 10 yearsWhat is happening instead of your desired behavior? Are you getting a
NullPointerException
? -
VM4 over 10 yearsWell '{' and '}' indicate an object and you're fetching an array from the first line.
-
Adnan over 10 yearsCan you provide the valid json. Use try{}catch{} to find the problem.
-
M-Wajeeh over 10 yearsUse
gSon
library by Google to parse json, it will be easier to parse and get Java objects that way. -
Niko Adrianus Yuwono over 10 yearscould you give the link to the full json?I don't think this is the full json data you give to us
-