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