解析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 2022-03-30 11:17  剑九名为六千里  阅读(125)  评论(0)    收藏  举报