随笔 - 12,  文章 - 0,  评论 - 0,  阅读 - 2630

解析JSON对象内的JSON数组

package com.lyarn.study;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//虚拟一段数据
String res="{\n" +
" \"code\": 200,\n" +
" \"msg\": \"查询成功\",\n" +
" \"data\": [\n" +
" {\n" +
" \"image_url\": \"http://contentcms-bj.cdn.bcebos.com/cmspic/dd7b0d8aa276e3a062edf462b4082065.jpeg\",\n" +
" \"title\": \"埃及马特鲁港:壮丽海滩\",\n" +
" \"news_url\": \"http://www.news.cn/photo/2022-03/29/c_1128511033_5.htm\"\n" +
" },\n" +
" {\n" +
" \"image_url\": \"http://contentcms-bj.cdn.bcebos.com/cmspic/96a6f7ae86ca199cc9fcf84e1270bec9.jpeg\",\n" +
" \"title\": \"贵阳环城铁路首发班组亮相\",\n" +
" \"news_url\": \"http://www.news.cn/photo/2022-03/29/c_1128514110.htm\"\n" +
" },\n" +
" {\n" +
" \"image_url\": \"http://contentcms-bj.cdn.bcebos.com/cmspic/40337904ac5365ab8a5bfec53bc0be33.jpeg\",\n" +
" \"title\": \"美国紫藤花经吉尼斯世界纪录认证为最大开花植物\",\n" +
" \"news_url\": \"http://www.chinanews.com.cn/tp/hd2011/2022/03-29/1025429.shtml\"\n" +
" },\n" +
" {\n" +
" \"image_url\": \"http://contentcms-bj.cdn.bcebos.com/cmspic/b888d86e046564b36c3443180a4f1cac.jpeg\",\n" +
" \"title\": \"最“残酷”的马拉松比赛 共计250公里全程沙漠\",\n" +
" \"news_url\": \"http://www.chinanews.com.cn/tp/hd2011/2022/03-29/1025372.shtml\"\n" +
" },\n" +
" {\n" +
" \"image_url\": \"http://contentcms-bj.cdn.bcebos.com/cmspic/eabf796de661928901677c93593c796c.jpeg\",\n" +
" \"title\": \"青海“高原小江南”:丹霞地貌与杏林互映\",\n" +
" \"news_url\": \"http://www.chinanews.com.cn/tp/hd2011/2022/03-29/1025413.shtml\"\n" +
" }\n" +
" ]\n" +
"}";
try {
//获取json数据
JSONObject jsonObject1=new JSONObject(res);
//获取键为data的json值
String data=jsonObject1.getString("data");
//data转json数组
JSONArray jsonArray=new JSONArray(data);
//声明一个集合装载数据
List<String> list=new ArrayList<>();
//遍历数组
for (int i=0;i<jsonArray.length();i++){
//数组转对象
JSONObject jsonObject2=jsonArray.getJSONObject(i);
//获取键为image_url的值
String image_url=jsonObject2.getString("image_url");
//循环添加到集合内
list.add(image_url);
}
//打印测试
Log.d("list", String.valueOf(list));
} catch (JSONException e) {
e.printStackTrace();
}
}
}
posted on   剑九名为六千里  阅读(120)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示