Java 使用数组值将jsonarray数据拆分为多个列表
我想根据现有数据拆分Java 使用数组值将jsonarray数据拆分为多个列表,java,android,arraylist,Java,Android,Arraylist,我想根据现有数据拆分ArrayList,如下所示 类别等 我尝试嵌套for循环并将它们添加到列表中。但它不起作用 String url = "http://27.147.169.230/UpSkillService/UpSkillsService.svc/" + "GetCNCCourseDefByorg/" + 1 +"/" +1; Ion.with(getApplicationContext()) .load("GET",url)
ArrayList
,如下所示
类别等
我尝试嵌套for循环并将它们添加到列表中。但它不起作用
String url = "http://27.147.169.230/UpSkillService/UpSkillsService.svc/" + "GetCNCCourseDefByorg/" + 1 +"/" +1;
Ion.with(getApplicationContext())
.load("GET",url)
.setBodyParameter("","")
.asString()
.setCallback(new FutureCallback<String>() {
@Override
public void onCompleted(Exception e, String result) {
Log.d("Result",result);
try {
JSONObject obj =new JSONObject(result);
JSONArray jsonArray = obj.getJSONArray("GetCNCCourseDefByorgResult");
//Arrays.sort(new JSONArray[]{jsonArray});
if(obj.isNull("GetCNCCourseDefByorgResult"))
{
Toast.makeText(getApplicationContext(),"No Course Found",Toast.LENGTH_SHORT).show();
}
else if (!obj.equals(null)) {
String cata="";
Log.d("Resul3", jsonArray.toString());
for (int i = 0; i < jsonArray.length(); i++) {
final CourseCatagory catagoryModel = new CourseCatagory();
JSONObject course = jsonArray.getJSONObject(i);
CourseList courselist = new CourseList();
if(cata!=course.getString("CategoryName"))
{
Log.d("Catagory",cata);
catagoryModel.setCategoryName(course.getString("CategoryName"));
arrayListcatagory.add(catagoryModel);
for (int j=0;j<jsonArray.length();j++)
{
JSONObject cat1 = jsonArray.getJSONObject(j);
cata=cat1.getString("CategoryName");
Log.d("cat",cata);
if(cat1.getString("CategoryName")==course.getString("CategoryName"))
{
courselist.setCourseName(cat1.getString("CourseName"));
courselist.setCourseCode(cat1.getString("CourseCode"));
courselist.setWishFlag(cat1.getInt("WishFlag"));
Log.d("Course",cat1.getString("CourseName"));
arrayListcourse.add(courselist);
}
else {
}
}
}
catagoryModel.setCourseList(arrayListcourse);
}
adapter.notifyDataSetChanged();
}
} catch (JSONException e1) {
e1.printStackTrace();
}
}
});
}
stringurl=”http://27.147.169.230/UpSkillService/UpSkillsService.svc/“+”GetCNCCourseDefByorg/“+1+”/“+1;
使用(getApplicationContext())
.load(“获取”,url)
.setBodyParameter(“,”)
.asString()
.setCallback(新的FutureCallback(){
@凌驾
未完成公共void(异常e,字符串结果){
Log.d(“结果”,结果);
试一试{
JSONObject obj=新JSONObject(结果);
JSONArray JSONArray=obj.getJSONArray(“getcnccoursedeffyorgresult”);
//sort(新的JSONArray[]{JSONArray});
if(obj.isNull(“GetCNCCourseDefByorgResult”))
{
Toast.makeText(getApplicationContext(),“找不到课程”,Toast.LENGTH_SHORT.show();
}
如果(!obj.equals(null))为else{
字符串cata=“”;
Log.d(“result3”,jsonArray.toString());
for(int i=0;i
财务>导论财务
您可以使用HashMap
来解决问题
首先创建CategoryDetails POJO类
class CategoryDetails {
private courseName;
private courseCode;
private wishFlag;
//make setter and getter methods for above fields.
}
然后使用类别名称作为HashMap中的键来区分,如我的答案的第一行所述
Map<String,ArrayList<CategoryDetails>> listCategory = new HashMap<String,ArrayList<CategoryDetails>>;
MapListCategory=新HashMap;
但它不起作用-->打开的是什么。你能提示一些输出吗?jsonarray>>{“GetCNCCourseDefByorgResult”:[{“CategoryID”:1,“CategoryName”:“Accounting”,“CourseCode”:“ACC001”,“CourseName”:“Accounting简介”,},{“CategoryID”:2,“CategoryName”:“Finance”,“CourseName”:“Finance”,“Introduction to Finance”,},{“CategoryID”:1,“CategoryName”:“Accounting”,“CourseCode”:“ACC002”,“CourseName”:“Advanced Accounting”,}}}}}课程名称应在同一类别下,但此处课程名称在每个类别下重复请解释。