zoukankan      html  css  js  c++  java
  • 怎么处理json字符串

    1,可以先进行判断,是jsonObject:{"":""}还是Arrayjson:[{},{}],使用JSONTokener(自己知道的情况下就简单一些)

    ArrayList<Object> arrayList = new ArrayList<>();
            try {
                Object json=new JSONTokener(response).nextValue();
                if(json instanceof JSONArray){
                    JSONArray array=new JSONArray(response);
                    for (int i=0;i<array.length();i++){
                        arrayList.add(array.get(i));
                    }
                    return arrayList;
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

    2,自己写一个类,处理json

    package com.example.fitness_app;
    
    import com.example.fitness_app.bean.FitnessCourse;
    
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    import org.json.JSONTokener;
    
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.LinkedHashMap;
    import java.util.List;
    
    public class MyJson {
        //返回json对象
       public JSONObject JsonToObject(String response){
    
           try {
    
               Object json=new JSONTokener(response).nextValue();
               if(json instanceof JSONObject){
                   JSONObject jso = new JSONObject(response);
                   return jso;
               }
           } catch (JSONException e) {
               e.printStackTrace();
           }
    
           return null;
       }
    
       //返回list集合
        public List<Object> JsonToList(String response){
            ArrayList<Object> arrayList = new ArrayList<>();
            try {
                Object json=new JSONTokener(response).nextValue();
                if(json instanceof JSONArray){
                    JSONArray array=new JSONArray(response);
                    for (int i=0;i<array.length();i++){
                        arrayList.add(array.get(i));
                    }
                    return arrayList;
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
    
            return  null;
        }
    
        //返回list集合
        public List<FitnessCourse> JsonToListTeacherCourse(String response){
            ArrayList<FitnessCourse> arrayList = new ArrayList<>();
    //        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            try {
                Object json=new JSONTokener(response).nextValue();
                if(json instanceof JSONArray){
                    JSONArray array=new JSONArray(response);
    
                    for (int i=0;i<array.length();i++){
                        FitnessCourse  f = new FitnessCourse();
                        JSONObject jsonObject = array.getJSONObject(i);
                        if(jsonObject.get("id")!=null){
                            f.setId(Long.parseLong(jsonObject.get("id").toString()));
                        }
                        if (jsonObject.get("name")!=null){
                            f.setName((String) jsonObject.get("name"));
                        }
                        if (jsonObject.get("description")!=null){
                            f.setDescription((String) jsonObject.get("description"));
                        }
                        if (jsonObject.get("courseDay")!=null){
                            f.setCourseDay((String) jsonObject.get("courseDay"));
                        }
                        if (jsonObject.get("courseTime")!=null){
                            f.setCourseTime((String) jsonObject.get("courseTime"));
                        }
                        if (jsonObject.get("teacherId")!=null){
                            f.setTeacherId(Long.parseLong(jsonObject.get("teacherId").toString()));
                        }
                        arrayList.add(f);
                    }
                    return arrayList;
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
    
            return  null;
        }
    

    3,在带有泛型的情况下不能强转!(不带的情况下,子父类可以互相强转!!)

    4,可以通过循环单个取出强转

     List<FitnessCourse> courses = myJson.JsonToListTeacherCourse(t_course);
            List<Object> list = myJson.JsonToList(t_course);
            ArrayList<FitnessCourse> courses1 = new ArrayList<>();
            for (int i=0;i<list.size();i++){
                FitnessCourse o = (FitnessCourse)list.get(i);
            }

    链接:https://blog.csdn.net/rlingge/article/details/49883705

  • 相关阅读:
    又是一年毕业季——程序员的苦与乐
    你的团队需要一个正确的程序集(dll)管理姿势
    说一说Web开发中两种常用的分层架构及其对应的代码模型
    理解RESTful API
    一文回顾Redis五大对象(数据类型)
    Redis对象——有序集合(ZSet)
    Redis对象——集合(Set)
    Redis对象——列表(List)
    Redis对象——哈希(Hash)
    Redis数据结构——quicklist
  • 原文地址:https://www.cnblogs.com/wskb/p/12444863.html
Copyright © 2011-2022 走看看