zoukankan      html  css  js  c++  java
  • JSONObject和JSONArray的简单使用(json-lib)

    一. jar包

    1. commons-lang.jar
    2. commons-beanutils.jar
    3. commons-collections.jar
    4. commons-logging.jar 
    5. ezmorph.jar
    6. json-lib-2.2.2-jdk15.jar

    二. 代码

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    
    public class Test {
    
        public static void main(String[] args) {
            new Test().test1();
            new Test().test2();
            new Test().test3();
            new Test().test4();
            new Test().test5();
            new Test().test6();
            new Test().test7();
        }
    
        /**
         * JSON字符串转JSONObject对象
         */
        public void test1() {
            String jsonStr = "{"name":"ZhangSan","sex":"boy","age":18}";
            JSONObject jsonObj = JSONObject.fromObject(jsonStr);
            System.out.println(jsonObj.toString());
        }
    
        /**
         * 简单JSONObject对象转java对象
         */
        public void test2() {
            JSONObject jsonObj = new JSONObject();
            jsonObj.put("name", "LiSi");
            jsonObj.put("sex", "girl");
            jsonObj.put("age", 17);
            Student student = (Student) JSONObject.toBean(jsonObj, Student.class);
            System.out.println(student.getName() + " | " + student.getSex() + " | " + student.getAge());
        }
    
        /**
         * 复杂JSONObject对象转java对象
         */
        @SuppressWarnings("rawtypes")
        public void test3() {
            List<Student> students = new ArrayList<Student>();
            students.add(new Student("ZhangSan", "boy", 18));
            students.add(new Student("LiSi", "girl", 17));
    
            BanJi banji = new BanJi();
            banji.setBanJiName("日语二班");
            banji.setStudents(students);
    
            JSONObject jsonObj = JSONObject.fromObject(banji);
            Map<String, Class> classMap = new HashMap<String, Class>();
            classMap.put("students", Student.class);
            BanJi banji2 = (BanJi) JSONObject.toBean(jsonObj, BanJi.class, classMap);
            System.out.println(banji2.getStudents().get(0).getName()); // 验证转换是否成功
        }
    
        /**
         * 简单java集合对象转JSONArray
         */
        public void test4() {
            List<Student> students = new ArrayList<Student>();
            students.add(new Student("ZhangSan", "boy", 18));
            students.add(new Student("LiSi", "girl", 17));
            JSONArray jsonArray = JSONArray.fromObject(students);
            System.out.println(jsonArray.toString());
        }
    
        /**
         * JSONArray转java集合对象
         */
        @SuppressWarnings({ "unchecked", "deprecation" })
        public void test5() {
            JSONObject jsonObj1 = new JSONObject();
            jsonObj1.put("name", "ZhangSan");
            jsonObj1.put("sex", "boy");
            jsonObj1.put("age", 18);
    
            JSONObject jsonObj2 = new JSONObject();
            jsonObj2.put("name", "lisi");
            jsonObj2.put("sex", "girl");
            jsonObj2.put("age", 17);
    
            JSONArray jsonArray = new JSONArray();
            jsonArray.add(0, jsonObj1);
            jsonArray.add(1, jsonObj2);
    
            List<Student> students3 = JSONArray.toList(jsonArray, Student.class);
            System.out.println(students3.get(0).getName());
            System.out.println(students3.get(1).getName());
        }
    
        /**
         * 复杂java集合对象转JSONArray
         */
        @SuppressWarnings({ "rawtypes", "unchecked", "deprecation" })
        public void test6() {
            BanJi banji1 = new BanJi();
            banji1.setBanJiName("日语一班");
            List<Student> students1 = new ArrayList<Student>();
            students1.add(new Student("ZhangSan", "boy", 18));
            banji1.setStudents(students1);
    
            BanJi banji2 = new BanJi();
            banji2.setBanJiName("日语二班");
            List<Student> students2 = new ArrayList<Student>();
            students1.add(new Student("LiSi", "girl", 17));
            banji2.setStudents(students2);
    
            List<BanJi> banjiList = new ArrayList<BanJi>();
            banjiList.add(banji1);
            banjiList.add(banji2);
    
            JSONArray jsonArray = JSONArray.fromObject(banjiList);
            Map<String, Class> classMap = new HashMap<String, Class>();
            classMap.put("students", Student.class);
            List<BanJi> banjiList2 = JSONArray.toList(jsonArray, BanJi.class, classMap);
            System.out.println(banjiList2.get(0).getStudents().get(0).getName());
    
        }
    
        /**
         * 拆分JSONArray为JSONObject
         */
        public void test7() {
            JSONObject jsonObj1 = new JSONObject();
            jsonObj1.put("name", "ZhangSan");
            jsonObj1.put("sex", "boy");
            jsonObj1.put("age", 18);
    
            JSONObject jsonObj2 = new JSONObject();
            jsonObj2.put("name", "lisi");
            jsonObj2.put("sex", "girl");
            jsonObj2.put("age", 17);
    
            JSONArray jsonArray = new JSONArray();
            jsonArray.add(0, jsonObj1);
            jsonArray.add(1, jsonObj2);
    
            JSONObject object = (JSONObject) jsonArray.get(0);
            System.out.println(object.toString());
        }
    
    }
    import java.util.List;
    
    /**
     * 班级类
     */
    public class BanJi {
    
        private String banJiName; // 班级名
    
        private List<Student> students; // 学生
    
        /**
         * 构造函数
         */
        public BanJi() {
            super();
        }
    
        // getters/setters(略)
    }
    /**
     * 学生类
     */
    public class Student {
    
        private String name; // 姓名
    
        private String sex; // 性别
    
        private int age; // 年龄
    
        /**
         * 构造函数
         */
        public Student() {
            super();
        }
    
        /**
         * 构造函数
         */
        public Student(String name, String sex, int age) {
            super();
            this.name = name;
            this.sex = sex;
            this.age = age;
        }
    
        // getters/setters(略)
    }
  • 相关阅读:
    kmp模板
    2017 ACM/ICPC Asia Regional Shenyang Online transaction transaction transaction
    2017 ACM/ICPC Asia Regional Shenyang Online 12 card card card
    KMP
    最长不下降子序列
    codeforces round 433 D. Jury Meeting
    codeforces round 433 C. Planning 贪心
    hdu 5792 线段树+离散化+思维
    hdu 5792 树状数组+离散化+思维
    hdu 5791 思维dp
  • 原文地址:https://www.cnblogs.com/zj0208/p/5853733.html
Copyright © 2011-2022 走看看