JSON字符串和java对象的互转【json-lib】

 

目录

一、java对象-->>字符串  (省略实体类部分,只写转换部分)

二、JSON字符串-->>java对象 

三、list-->>json字符串

四、json字符串-->> list

五、map-->> json字符串

六、json字符串-->> map


 

要想实现JSON和java对象之间的互转,需要借助第三方jar包,这里使用json-lib这个jar包,json-lib需要五个包的支持,如下:

commons-beanutils-1.8.0.jar、

commons-collections-3.2.1.jar、

commons-lang-2.5.jar、

commons-logging-1.1.1.jar、

ezmorph-1.0.6.jar


    commons-beanutils
    commons-beanutils
    1.9.3



    commons-collections
    commons-collections
    3.2.1



    commons-lang
    commons-lang
    2.6



    commons-logging
    commons-logging
    1.1.1



    net.sf.ezmorph
    ezmorph
    1.0.6



一、java对象-->>字符串  (省略实体类部分,只写转换部分)

public static void convertObject() {
        
        Student stu=new Student();
        stu.setName("JSON");
        stu.setAge("23");
        stu.setAddress("北京市西城区");

        //1、使用JSONObject
        JSONObject json = JSONObject.fromObject(stu);
        //2、使用JSONArray
        JSONArray array=JSONArray.fromObject(stu);
        
        String strJson=json.toString();
        String strArray=array.toString();
        
        System.out.println("strJson:"+strJson);
        System.out.println("strArray:"+strArray);
    }

二、JSON字符串-->>java对象 

public static void jsonStrToJava(){
        //定义两种不同格式的字符串
        String objectStr="{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城区\"}";
        String arrayStr="[{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城区\"}]";
    
        //1、使用JSONObject
        JSONObject jsonObject=JSONObject.fromObject(objectStr);
        Student stu=(Student)JSONObject.toBean(jsonObject, Student.class);
        
        //2、使用JSONArray
        JSONArray jsonArray=JSONArray.fromObject(arrayStr);
        //获得jsonArray的第一个元素
        Object o=jsonArray.get(0);
        JSONObject jsonObject2=JSONObject.fromObject(o);
        Student stu2=(Student)JSONObject.toBean(jsonObject2, Student.class);
        System.out.println("stu:"+stu);
        System.out.println("stu2:"+stu2);
        
    }

三、list-->>json字符串

public static void listToJSON(){
        Student stu=new Student();
        stu.setName("JSON");
        stu.setAge("23");
        stu.setAddress("北京市海淀区");
        List lists=new ArrayList();
        lists.add(stu);
        //1、使用JSONObject
        //JSONObject listObject=JSONObject.fromObject(lists);
        //2、使用JSONArray
        JSONArray listArray=JSONArray.fromObject(lists);
        
        //System.out.println("listObject:"+listObject.toString());
        System.out.println("listArray:"+listArray.toString());
        
    }

四、json字符串-->> list

public static void jsonToList(){
        String arrayStr="[{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城区\"}]";
        //转化为list
                List list2=(List)JSONArray.toList(JSONArray.fromObject(arrayStr), Student.class);
                
                for (Student stu : list2) {
                    System.out.println(stu);
                }
                //转化为数组
                Student[] ss =(Student[])JSONArray.toArray(JSONArray.fromObject(arrayStr),Student.class);
                for (Student student : ss) {
                    System.out.println(student);
                }
        
        
    }

五、map-->> json字符串

public static void mapToJSON(){
        Student stu=new Student();
        stu.setName("JSON");
        stu.setAge("23");
        stu.setAddress("中国上海");
        Map map=new HashMap();
        map.put("first", stu);
        
        //1、JSONObject
        JSONObject mapObject=JSONObject.fromObject(map);
        System.out.println("mapObject"+mapObject.toString());
        
        //2、JSONArray
        JSONArray mapArray=JSONArray.fromObject(map);
        System.out.println("mapArray:"+mapArray.toString());
    }

六、json字符串-->> map

public static void jsonToMap(){
        String strObject="{\"first\":{\"address\":\"中国上海\",\"age\":\"23\",\"name\":\"JSON\"}}";
        
        //JSONObject
        JSONObject jsonObject=JSONObject.fromObject(strObject);
        Map map=new HashMap();
        map.put("first", Student.class);

        //使用了toBean方法,需要三个参数 
        MyBean my=(MyBean)JSONObject.toBean(jsonObject, MyBean.class, map);
        System.out.println(my.getFirst());
        
    }

 

你可能感兴趣的:(java)