JSON幾種轉換方法

 

JSON幾種轉換方法

 

1、  首先創建一個web程序,

在domain包下創建Student 和 Teacher 類。 在Teacher.java中封裝name,sex,age,birth屬性,並實現 其構造器 set和get方法,以及toString()方法。

2、  在junit包下創建一個測試類 。 用來進行測試。

Demo.java

 

 

    //第一個案例:將Java對象轉換成Json字符串

    @Test

    public void fromObject(){

       //將Java對象轉換成Json字符串

       Teacher teacher = new Teacher();

       teacher.setName("redmary");

       teacher.setSex("男");

       teacher.setAge(21);

       teacher.setBirth(new Date());

      

       //json字符串

       /*

        * {name:"redarmy",sex:"男",age:21,birth:{對象}

        * */

       //需要引入類庫文件

       //調用JSONObject.fromObject(object)完成轉換

       System.out.println(JSONObject.fromObject(teacher).toString());

    }

   

 

 

    //第二個案例:將Java集合轉換成Json字符串

    @Test

    public void fromVector(){

       List<Teacher> teas = new ArrayList<Teacher>();

      

       for(int i=0;i<3;i++){

          

       Teacher teacher = new Teacher();

      

       teacher.setName("redmary");

       teacher.setSex("男");

       teacher.setAge(21);

       teacher.setBirth(new Date());

      

       teas.add(teacher);

       }

       //調用JSONArray.fromObject(object)完成轉換

       System.out.println(JSONArray.fromObject(teas).toString());

    }

   

   

    //第三個案例:將JSON字符串轉換成對象

    @Test

    public void fromJsonObject(){

       //第一步:定義出字符串

       String teaObj = "{\"age\":21,\"birth\":{\"date\":28,\"day\":2,\"hours\":9,\"minutes\":31,\"month\":1,\"seconds\":38,\"time\":1330392698421,\"timezoneOffset\":-480,\"year\":112},\"name\":\"redmary\",\"sex\":\"男\"}";

       //第二步:調用JSONObject.fromObject(teaObj)方法將其字符串轉換成JsonObject對象

       JSONObject jsonObj = JSONObject.fromObject(teaObj);

       //第三步:調用JSONObject的toBean方法 ,將其轉換成一個Object對象

       Teacher teac = (Teacher) JSONObject.toBean(jsonObj,Teacher.class);

      

       System.out.println(teac.toString());

    }

   

    //第四個案例:將數組的字符串轉換成集合對象

    @Test

    public void fromJsonArray(){

       //第一步:聲明出字符串

       String teaArr = "[{\"age\":21,\"birth\":{\"date\":28,\"day\":2,\"hours\":9,\"minutes\":31,\"month\":1,\"seconds\":38,\"time\":1330392698421,\"timezoneOffset\":-480,\"year\":112},\"name\":\"redmary\",\"sex\":\"男\"},{\"age\":21,\"birth\":{\"date\":28,\"day\":2,\"hours\":9,\"minutes\":31,\"month\":1,\"seconds\":38,\"time\":1330392698421,\"timezoneOffset\":-480,\"year\":112},\"name\":\"redmary\",\"sex\":\"男\"},{\"age\":21,\"birth\":{\"date\":28,\"day\":2,\"hours\":9,\"minutes\":31,\"month\":1,\"seconds\":38,\"time\":1330392698421,\"timezoneOffset\":-480,\"year\":112},\"name\":\"redmary\",\"sex\":\"男\"}]";

       //第二步:調用JSONArray.fromObject(teaArr)方法將其字符串轉換成一個JsonArray對象

       JSONArray jsonArra = JSONArray.fromObject(teaArr);

       //第三步:調用JSONArray的toCollection方法將其轉換成指定泛型的List集合對象

       List<Teacher> teas = (List<Teacher>) JSONArray.toCollection(jsonArra,Teacher.class);

       for(Teacher tea:teas){

           System.out.println(teas.toString());

       }

    }

   

   

 

    //第五個案例:將Java對象轉換成Json字符串

    @Test

    public void fromObject1(){

       //將Java對象轉換成Json字符串

       Teacher teacher = new Teacher();

      

       teacher.setName("redmary");

       teacher.setSex("男");

       teacher.setAge(21);

       teacher.setBirth(new Date());

      

       //json字符串

       /*

        * {name:"redarmy",sex:"男",age:21,birth:{對象}

        * */

      

       List<Student> stus = new ArrayList<Student>();

       for(int i=0;i<3;i++){

           Student stu = new Student();

           stu.setName("pangli"+i);

           stus.add(stu);

       }

       teacher.setStus(stus);

       //需要引入類庫文件

       //調用JSONObject.fromObject(object)完成轉換

       System.out.println(JSONObject.fromObject(teacher).toString());

    }

發佈了138 篇原創文章 · 獲贊 3 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章