gpt4 book ai didi

java - 在json对象android中获取数组中的值

转载 作者:行者123 更新时间:2023-11-29 07:55:31 25 4
gpt4 key购买 nike

我有一个这样的 json,

{
"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"
]
}
},

我使用这样的代码 =>

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

我期望的输出是:

标题 =

日期 =

海报(在文件夹 dp_video_poster 中)=

视频(在文件夹 dp_video_file 中)=

谁能帮我解决这个问题?

提前致谢

最佳答案

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

}

关于java - 在json对象android中获取数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18036594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com