zoukankan      html  css  js  c++  java
  • fastjson(转)

    博客地址 : http://blog.csdn.NET/shulianghan/article/details/41011605

    fastjson 源码地址 : 

    -- GitHub : https://github.com/alibaba/fastjson ;

    -- 示例源码 : https://github.com/alibaba/fastjson/wiki/Samples-DataBind ;

    -- Jar下载 : http://sourceforge.net/projects/fastjson/ ;

    总结 : 

    Java Bean <--> json 字符串 <--> JSONObject 互相转化

     

    json 字符串 与 java Bean 对象 互相转化 : 

    -- json 字符串 -> Java Bean 对象 : JSON.parseObject(String text, Class<Student> clazz) 方法, 示例 - Student student = JSON.parseObject(json_student, Student.class);

    -- Java Bean 对象 -> json 字符串 : JSON.toJSONString(Object object, boolean prettyFormat) 方法, 示例 - String format_json = JSON.toJSONString(student, true);

    Java Bean 对象 与 JSONObject 对象 互相转化 : 

    -- Java Bean 对象 -> JSONObject 对象 : JSON.toJSON(Object javaObject) 方法, 示例 - JSONObject object = (JSONObject) JSON.toJSON(student_s)

    -- JSONObject 对象 -> Java Bean 对象 (无直接方法实现) : JSON.parseObject(jsonObject.toString(), Class<T> clazz) 方法, 先转成字符串, 再转成 Java Bean;

    json 字符串 与 JSONObject 对象互相转化 : 

    -- json 字符串 -> JSONObject 对象 : JSON.parseObject(String text) 方法, 示例 - JSONObject object = JSON.parseObject(json_student);

    -- JSONObject 对象 -> json 字符串 : JSONObject.toString() 方法, 示例 - object.toString();

    Java Bean 对象 <--> json 字符串 <--> JSONArray 对象 互相转化

    json 字符串 与 Java 集合 互相转化 : 

    -- json 字符串 -> Java 集合 : JSON.parseObject(String text, Class<Student> clazz) 方法, 示例 - List<Student> students = JSON.parseArray(json_array, Student.class);

    -- Java 集合 -> json 字符串 : toJSONString(Object object, boolean prettyFormat) 方法, 示例 - String json_array = JSON.toJSONString(students, true);

    Java 集合 与 JSONArray 对象 互相转化 : 

    -- Java 集合 -> JSONArray 对象 : JSON.toJSON(Object javaObject) 方法, 示例 - JSONArray array = (JSONArray) JSON.toJSON(students);

    -- JSONArray 对象 -> Java 集合 (没有直接转化方法) : 先转成 json 字符串, 再转成 Java 集合;

    json 字符串 与 JSONArray 对象 互相转化 

    -- json 字符串 -> JSONArray 对象 : JSON.parseArray(String text) 方法, 示例 - JSONArray array = JSON.parseArray(json_array);

    -- JSONArray 对象 -> json 字符串 : jsonArray.toString() 方法;

    一. JSON 简介

    1. JSON 结构

    (1) 对象

    对象简介 : 

    -- 格式 : 对象定义在 大括号 {} 中, 中间的项由 逗号 隔开, 每个项目都是 key : value  进行的;

    -- 示例 : {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1};

    -- 格式化后的 : 

    [plain] view plain copy
     
    1. {  
    2.     "age":42,  
    3.     "id":1,  
    4.     "male":true,  
    5.     "name":"Sherlock Holmes",  
    6.     "schoolId":1  
    7. }  



    (2) 数组

    数组简介 : 

    -- 数组格式 : 数组放在 中括号[] 中, 在 [] 中有 n 个 {} 元素, 每个元素用 逗号 隔开;

    -- 数组示例 : [{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}] ;

    -- 输出格式化后的数组 : 

    [plain] view plain copy
     
    1. [  
    2.     {  
    3.         "age":42,  
    4.         "id":1,  
    5.         "male":true,  
    6.         "name":"Sherlock Holmes",  
    7.         "schoolId":1  
    8.     },  
    9.     {  
    10.         "age":42,  
    11.         "id":2,  
    12.         "male":false,  
    13.         "name":"John Watson",  
    14.         "schoolId":1  
    15.     }  
    16. ]  

    二. JSON 相关用法

    1. JSON.toJSONString 方法

    (1) JSON.toJSONString(Object object)方法简介

    JSON.toJSONString(Object object)方法简介 : 

    -- 方法定义 : public static final String toJSONString(Object object) ;

    -- 方法作用 : 将 java bean 转为 json 字符串;

    -- 方法位置 : String com.alibaba.fastjson.JSON.toJSONString(Object object) ;

    -- 参数介绍 : Object object -> 要转换的实体类对象;

    JSON.toJSONString(Object object, boolean prettyFormat)方法简介 

    -- 方法定义 : public static final String toJSONString(Object object, boolean prettyFormat) ;

    -- 方法作用 : 将 java bean 转为 json 字符串, 并将 json 字符串格式化;

    -- 方法位置 String com.alibaba.fastjson.JSON.toJSONString(Object object, boolean prettyFormat) ;

    -- 参数介绍 : Object object -> 要转换的实体类对象, boolean prettyFormat -> 是否将 json 字符串格式化 如果 false 与 上面的方法作用相同;

    (2) JSON.toJSONString(Object object) 和 JSON.toJSONString(Object object, boolean prettyFormat)方法使用示例

    JavaBean 类定义 

    [java] view plain copy
     
    1. package cn.org.octopus.fastjson.beans;  
    2.   
    3. public class Student {  
    4.   
    5.     private int id;  
    6.     private String name;  
    7.     private int age;  
    8.     private boolean isMale;  
    9.     private int schoolId;  
    10.       
    11.     public Student() {  
    12.         super();  
    13.     }  
    14.       
    15.     public Student(int id, String name, int age, boolean isMale, int schoolId) {  
    16.         super();  
    17.         this.id = id;  
    18.         this.name = name;  
    19.         this.age = age;  
    20.         this.isMale = isMale;  
    21.         this.schoolId = schoolId;  
    22.     }  
    23.   
    24.     public int getId() {  
    25.         return id;  
    26.     }  
    27.   
    28.     public void setId(int id) {  
    29.         this.id = id;  
    30.     }  
    31.   
    32.     public String getName() {  
    33.         return name;  
    34.     }  
    35.   
    36.     public void setName(String name) {  
    37.         this.name = name;  
    38.     }  
    39.   
    40.     public int getAge() {  
    41.         return age;  
    42.     }  
    43.   
    44.     public void setAge(int age) {  
    45.         this.age = age;  
    46.     }  
    47.   
    48.     public boolean isMale() {  
    49.         return isMale;  
    50.     }  
    51.   
    52.     public void setMale(boolean isMale) {  
    53.         this.isMale = isMale;  
    54.     }  
    55.   
    56.     public int getSchoolId() {  
    57.         return schoolId;  
    58.     }  
    59.   
    60.     public void setSchoolId(int schoolId) {  
    61.         this.schoolId = schoolId;  
    62.     }  
    63.   
    64.     @Override  
    65.     public String toString() {  
    66.         return "Student [id=" + id + ", name=" + name + ", age=" + age  
    67.                 + ", isMale=" + isMale + ", schoolId=" + schoolId + "]";  
    68.     }  
    69. }  

    main 函数代码 : 

    [java] view plain copy
     
    1. public static void main(String[] args) {  
    2.       
    3.     //创建一个 Student 对象  
    4.     Student student = new Student(1, "Sherlock Holmes", 42, true, 1);   
    5.     //将 Student 对象转为 json 字符串  
    6.     String json = JSON.toJSONString(student);  
    7.     //打印 json 字符串  
    8.     System.out.println(json);  
    9.       
    10.     //将 Student 对象转为 json 字符串, 这个字符串是经过格式化的  
    11.     String format_json = JSON.toJSONString(student, true);  
    12.     //打印格式化的 json  
    13.     System.out.println(format_json);  
    14.               
    15. }  


    执行结果 : 

    -- 第一个结果 : 该结果没有经过格式化, 只是将 json 字符串输出;

    -- 第二个结果 : 该结果按照 json 的格式进行格式化了;

    [plain] view plain copy
     
    1. {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1}  
    2. {  
    3.     "age":42,  
    4.     "id":1,  
    5.     "male":true,  
    6.     "name":"Sherlock Holmes",  
    7.     "schoolId":1  
    8. }  



    2. JSON.toJSON 方法

    (1) JSON.toJSON(Object javaObject) 方法简介

    方法简介 : 

    -- 方法定义 : public static final Object toJSON(Object javaObject) ;

    -- 方法作用 : 将 java bean 对象转为 JSONObject 对象, 或者将 集合 转为 JSONArray 对象;

    -- 方法位置 Object com.alibaba.fastjson.JSON.toJSON(Object javaObject) ;

    -- 参数介绍 : Object javaObject -> java bean 对象 或者 集合;

    关键代码解析 : 

    -- Java Bean 转 JSONObject : JSONObject object = (JSONObject) JSON.toJSON(student_s)

    -- Java 集合 转 JSONArray JSONArray array = (JSONArray) JSON.toJSON(students)

    JSONOject 和 JSONArray 打印 : 这两种对象 打印本身, toString() 以及 toJSONString() 都是相同的结果, 详见下面的示例;

    (2) 示例

    Student 实体类 : 在 一. 1. (2) 中有定义, 直接使用该实体类即可;

    Main() 示例 : 

    [java] view plain copy
     
    1. public class Main {  
    2.   
    3.     //该字符串是 {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1} 注意将 " 转为 "  
    4.     public static final String json_student =  "{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1}";  
    5.       
    6.     public static void main(String[] args) {  
    7.           
    8.         //创建一个 Student 对象  
    9.         Student student_s = new Student(1, "Sherlock Holmes", 42, true, 1);   
    10.         //将 java bean 对象转为 JSONObject 对象  
    11.         JSONObject object = (JSONObject) JSON.toJSON(student_s);   
    12.           
    13.         //JSONObject 直接打印, 打印 toString() 或者 toJSONString() 输出结果是一样的  
    14.         System.out.println(object + " -- 打印 JSONOBject 本身");  
    15.         System.out.println(object.toString() + " -- 打印 JSONOBject.toString()");  
    16.         System.out.println(object.toJSONString() + " -- 打印 JSONOBject.toJSONString()");  
    17.           
    18.         //再创建一个 Student 对象  
    19.         Student student_j = new Student(2, "John Watson", 42, false, 1);  
    20.         //将两个 Student 对象放到 List 集合中  
    21.         List<Student> students = new ArrayList<Student>();  
    22.         students.add(student_s);  
    23.         students.add(student_j);  
    24.         //将 List 集合对象转为 JSONArray 对象  
    25.         JSONArray array = (JSONArray) JSON.toJSON(students);  
    26.           
    27.         //JSONArray 直接打印, 打印 toString() 或者 toJSONString() 输出结果是一样的  
    28.         System.out.println(array + " -- 打印 JSONArray 本身");  
    29.         System.out.println(array.toString() + " -- 打印 JSONArray.toString()");  
    30.         System.out.println(array.toJSONString() + " -- 打印 JSONArray.toJSONString()");  
    31.           
    32. }  


    执行结果 : 

    [plain] view plain copy
     
    1. {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1} -- 打印 JSONOBject 本身  
    2. {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1} -- 打印 JSONOBject.toString()  
    3. {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1} -- 打印 JSONOBject.toJSONString()  
    4. [{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}] -- 打印 JSONArray 本身  
    5. [{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}] -- 打印 JSONArray.toString()  
    6. [{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}] -- 打印 JSONArray.toJSONString()  



    3. JSON.parseArray 方法

    (1) JSON.parseArray 方法简介

    JSONArray parseArray(String text)方法简介 

    -- 方法定义 : public static final JSONArray parseArray(String text) ;

    -- 方法作用 : 将 json 字符串转为 JSONArray 对象;

    -- 方法位置 : JSONArray com.alibaba.fastjson.JSON.parseArray(String text) ;

    -- 参数介绍 : String text -> json 字符串 ;

    <T> List<T> parseArray(String text, Class<T> clazz) 方法简介 : 

    -- 方法定义 : public static final <T> List<T> parseArray(String text, Class<T> clazz) ;

    -- 方法作用 : 将 json 字符串转为 List 集合;

    -- 方法位置 : <T> List<T> com.alibaba.fastjson.JSON.parseArray(String text, Class<T> clazz) ;

    -- 参数介绍 : String text -> json 字符串,  Class<T> clazz -> 集合元素类型;

    (2) 代码示例

    Main() 代码 : 

    [java] view plain copy
     
    1. //字符串内容 [{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}]  
    2. public static final String json_array = "[{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}]";  
    3.   
    4. public static void main(String[] args) {  
    5.       
    6.     //将 json 字符串转为 JSONArray 对象  
    7.     JSONArray array = JSON.parseArray(json_array);  
    8.     //打印 JSONArray 对象  
    9.     System.out.println(array);  
    10.       
    11.     //将 json 字符串转为 List 集合  
    12.     List<Student> students = JSON.parseArray(json_array, Student.class);  
    13.     //打印 List 集合大小  
    14.     System.out.println("students.size() : " + students.size());  
    15.     //遍历 List 集合中的元素  
    16.     for(Student student : students)  
    17.         System.out.println(student.toString());  
    18.       
    19. }  


    执行结果 : 

    [plain] view plain copy
     
    1. [{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}]  
    2. students.size() : 2  
    3. Student [id=1, name=Sherlock Holmes, age=42, isMale=true, schoolId=1]  
    4. Student [id=2, name=John Watson, age=42, isMale=false, schoolId=1]  



    4.  JSON.parseObject 方法

    (1) JSON.parseObject 方法简介

    JSONObject parseObject(String text) 方法简介 : 

    -- 方法定义 public static final JSONObject parseObject(String text);

    -- 方法作用 : 将 json 字符串类型转化为 JSONObject 对象;

    -- 方法位置 : JSONObject com.alibaba.fastjson.JSON.parseObject(String text);

    -- 参数介绍 : String text -> json 字符串;

    <T> T parseObject(String text, Class<T> clazz) 方法简介 : 

    -- 方法定义 : public static final <T> T parseObject(String text, Class<T> clazz);

    -- 方法作用 : 将 json 字符串转为指定类型的 java bean 对象;

    -- 方法位置 : <T> T com.alibaba.fastjson.JSON.parseObject(String text, Class<T> clazz);

    -- 参数介绍 : String text -> json 字符串Class<T> clazz -> 要转化的 java bean 对象类型;


    (2) 方法示例

    Main() 方法 : 

    [java] view plain copy
     
    1. //该字符串是 {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1} 注意将 " 转为 "  
    2. public static final String json_student =  "{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1}";  
    3.       
    4. public static void main(String[] args) {  
    5.       
    6.     //将 json 字符串转为 JSONObject 对象  
    7.     JSONObject object = JSON.parseObject(json_student);  
    8.     //打印 JSONObject 对象  
    9.     System.out.println(object);  
    10.       
    11.     //将 json 字符串转为 Student 对象  
    12.     Student student = JSON.parseObject(json_student, Student.class);  
    13.     //打印 Student 对象  
    14.     System.out.println(student.toString());  
    15.       
    16. }  


    执行结果 : 

    [plain] view plain copy
     
    1. {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1}  
    2. Student [id=1, name=Sherlock Holmes, age=42, isMale=true, schoolId=1]  



    5. JSON.parse 方法

    (1) Object parse(String text) 方法简介

    方法简介 : 

    -- 方法定义 : public static final Object parse(String text);

    -- 方法作用 : 将 json 字符串转为 JSONObject 或者 JSONArray 对象;

    -- 方法位置 : Object com.alibaba.fastjson.JSON.parse(String text);

    -- 参数介绍 : String text -> json 字符串;

    (2) 代码示例

    Main() 方法 : 

    [java] view plain copy
     
    1. //该字符串是 {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1} 注意将 " 转为 "  
    2. public static final String json_student =  "{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1}";  
    3.       
    4. public static void main(String[] args) {  
    5.       
    6.     //将 json 字符串转为 JSONObect 对象  
    7.     JSONObject object = (JSONObject) JSON.parse(json_student);  
    8.     //打印 JSONObject 对象  
    9.     System.out.println(object);  
    10.       
    11.     //将 json 字符串 转为 JSONArray 对象  
    12.     JSONArray array = (JSONArray) JSON.parse(json_array);  
    13.     //打印 JSONArray 对象  
    14.     System.out.println(array);  
    15.       
    16. }  


    运行结果 

    [plain] view plain copy
     
    1. {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1}  
    2. [{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}]  



    三. JSONObject 相关用法

    1. JSONObject 方法介绍

    相关方法介绍 : 

    -- 获取 JSONObject 中元素 : 获取 String 就调用 jsonObject.getString("key"), 获取 boolean 调用 jsonObject.getBoolean("key"), 同理还可以获取其它类型的数据;

    -- 向 JSONObject 中添加元素 : object.put("action", "fuck");

    -- 向 JSONObject 中添加多个元素 : 将一个 Map 集合添加到 JSONObject 中, Map 集合的键必须是 String 类型;

    [java] view plain copy
     
    1. //向 JSONObject 对象中添加多个属性  
    2. Map<String, String> map = new HashMap<String, String>();  
    3. map.put("home", "American");  
    4. map.put("school", "harvard");  
    5. object.putAll(map);  

    -- 移除 JSONObject 中的属性 : jsonObject.remove("key"), 参数是 键;

    -- 获取 JSONObject 中元素个数 : jsonObject.size();

    2. 代码示例

    Main() 函数代码 : 

    [java] view plain copy
     
    1. public static void main(String[] args) {  
    2.       
    3.     //创建 一个 Student 对象  
    4.     Student student = new Student(1, "Sherlock Holmes", 42, true, 1);   
    5.     //将 Java Bean 对象转为 JSONObject 对象  
    6.     JSONObject object = (JSONObject) JSON.toJSON(student);  
    7.     //打印 JSONObject 对象  
    8.     System.out.println(object.toString());  
    9.       
    10.     //获取 JSONObject 对象的 age 和 male 值  
    11.     String age = object.getString("age");  
    12.     boolean isMale = object.getBoolean("male");  
    13.     System.out.println("age : " + age + " , male : " + isMale);  
    14.       
    15.     //向 JSONObject 对象中添加单个属性  
    16.     object.put("action", "fuck");  
    17.     System.out.println(object.toString());  
    18.       
    19.     //向 JSONObject 对象中添加多个属性  
    20.     Map<String, String> map = new HashMap<String, String>();  
    21.     map.put("home", "American");  
    22.     map.put("school", "harvard");  
    23.     object.putAll(map);  
    24.     System.out.println(object.toJSONString());  
    25.       
    26.     //移除 JSONObject 对象中的属性  
    27.     object.remove("action");  
    28.     System.out.println(object);  
    29.       
    30.     //获取 JSONObject 中的属性个数  
    31.     System.out.println(object.size());  
    32.       
    33. }  



    执行结果 : 

    [plain] view plain copy
     
    1. {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1}  
    2. age : 42 , male : true  
    3. {"action":"fuck","age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1}  
    4. {"action":"fuck","age":42,"home":"American","id":1,"male":true,"name":"Sherlock Holmes","school":"harvard","schoolId":1}  
    5. {"age":42,"home":"American","id":1,"male":true,"name":"Sherlock Holmes","school":"harvard","schoolId":1}  
    6. 7  

    四. 所有相关代码示例

    1. Java Bean 类

    [java] view plain copy
     
    1. package cn.org.octopus.fastjson.beans;  
    2.   
    3. public class Student {  
    4.   
    5.     private int id;  
    6.     private String name;  
    7.     private int age;  
    8.     private boolean isMale;  
    9.     private int schoolId;  
    10.       
    11.     public Student() {  
    12.         super();  
    13.     }  
    14.       
    15.     public Student(int id, String name, int age, boolean isMale, int schoolId) {  
    16.         super();  
    17.         this.id = id;  
    18.         this.name = name;  
    19.         this.age = age;  
    20.         this.isMale = isMale;  
    21.         this.schoolId = schoolId;  
    22.     }  
    23.   
    24.     public int getId() {  
    25.         return id;  
    26.     }  
    27.   
    28.     public void setId(int id) {  
    29.         this.id = id;  
    30.     }  
    31.   
    32.     public String getName() {  
    33.         return name;  
    34.     }  
    35.   
    36.     public void setName(String name) {  
    37.         this.name = name;  
    38.     }  
    39.   
    40.     public int getAge() {  
    41.         return age;  
    42.     }  
    43.   
    44.     public void setAge(int age) {  
    45.         this.age = age;  
    46.     }  
    47.   
    48.     public boolean isMale() {  
    49.         return isMale;  
    50.     }  
    51.   
    52.     public void setMale(boolean isMale) {  
    53.         this.isMale = isMale;  
    54.     }  
    55.   
    56.     public int getSchoolId() {  
    57.         return schoolId;  
    58.     }  
    59.   
    60.     public void setSchoolId(int schoolId) {  
    61.         this.schoolId = schoolId;  
    62.     }  
    63.   
    64.     @Override  
    65.     public String toString() {  
    66.         return "Student [id=" + id + ", name=" + name + ", age=" + age  
    67.                 + ", isMale=" + isMale + ", schoolId=" + schoolId + "]";  
    68.     }  
    69. }  



    2. JSON 相关方法 Main 示例

    [java] view plain copy
     
      1. package cn.org.octopus.fastjson;  
      2.   
      3. import java.util.ArrayList;  
      4. import java.util.HashMap;  
      5. import java.util.List;  
      6. import java.util.Map;  
      7.   
      8. import cn.org.octopus.fastjson.beans.Student;  
      9.   
      10. import com.alibaba.fastjson.JSON;  
      11. import com.alibaba.fastjson.JSONArray;  
      12. import com.alibaba.fastjson.JSONObject;  
      13.   
      14. public class Main {  
      15.   
      16.       
      17.     //字符串内容 [{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}]  
      18.     public static final String json_array = "[{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}]";  
      19.       
      20.     //该字符串是 {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1} 注意将 " 转为 "  
      21.     public static final String json_student =  "{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1}";  
      22.           
      23.     public static void main(String[] args) {  
      24.           
      25.           
      26.     }  
      27.   
      28.   
      29.   
      30.     /** 
      31.      * JSONArray 相关方法 
      32.      */  
      33.     private static void JSONArrayMethod() {  
      34.         // 创建一个 Student 对象  
      35.         Student student_s = new Student(1, "Sherlock Holmes", 42, true, 1);  
      36.         // 再创建一个 Student 对象  
      37.         Student student_j = new Student(2, "John Watson", 42, false, 1);  
      38.         // 将两个 Student 对象放到 List 集合中  
      39.         List<Student> students = new ArrayList<Student>();  
      40.         students.add(student_s);  
      41.         students.add(student_j);  
      42.           
      43.         // 将 List 集合对象转为 JSONArray 对象  
      44.         JSONArray array = (JSONArray) JSON.toJSON(students);  
      45.         System.out.println("List -> JSONArray : " + array);  
      46.           
      47.         //将 List 集合 转化成 json 字符串  
      48.         String json_array = JSON.toJSONString(students, true);  
      49.         System.out.println("List -> json Str" + json_array);  
      50.           
      51.         //json 字符串转为 List 集合  
      52.         List<Student> students1 = JSON.parseArray(json_array, Student.class);  
      53.         System.out.println("json Str -> List : " + students1);  
      54.           
      55.         //json 字符串转 JSONArray  
      56.         JSONArray array1 = JSON.parseArray(json_array);  
      57.         System.out.println("json Str -> JSONArray : " + array1);  
      58.     }  
      59.   
      60.   
      61.   
      62.     /** 
      63.      * JSONObject 相关方法 
      64.      */  
      65.     private static void JSONObjectMethod() {  
      66.         //创建 一个 Student 对象  
      67.         Student student = new Student(1, "Sherlock Holmes", 42, true, 1);   
      68.         //将 Java Bean 对象转为 JSONObject 对象  
      69.         JSONObject object = (JSONObject) JSON.toJSON(student);  
      70.         //打印 JSONObject 对象  
      71.         System.out.println(object.toString());  
      72.           
      73.         //获取 JSONObject 对象的 age 和 male 值  
      74.         String age = object.getString("age");  
      75.         boolean isMale = object.getBoolean("male");  
      76.         System.out.println("age : " + age + " , male : " + isMale);  
      77.           
      78.         //向 JSONObject 对象中添加单个属性  
      79.         object.put("action", "fuck");  
      80.         System.out.println(object.toString());  
      81.           
      82.         //向 JSONObject 对象中添加多个属性  
      83.         Map<String, String> map = new HashMap<String, String>();  
      84.         map.put("home", "American");  
      85.         map.put("school", "harvard");  
      86.         object.putAll(map);  
      87.         System.out.println(object.toJSONString());  
      88.           
      89.         //移除 JSONObject 对象中的属性  
      90.         object.remove("action");  
      91.         System.out.println(object);  
      92.           
      93.         //获取 JSONObject 中的属性个数  
      94.         System.out.println(object.size());  
      95.     }  
      96.   
      97.   
      98.   
      99.     /** 
      100.      * JSON.parse() 方法示例 
      101.      */  
      102.     private static void parseMethod() {  
      103.         //将 json 字符串转为 JSONObect 对象  
      104.         JSONObject object = (JSONObject) JSON.parse(json_student);  
      105.         //打印 JSONObject 对象  
      106.         System.out.println(object);  
      107.           
      108.         //将 json 字符串 转为 JSONArray 对象  
      109.         JSONArray array = (JSONArray) JSON.parse(json_array);  
      110.         //打印 JSONArray 对象  
      111.         System.out.println(array);  
      112.     }  
      113.   
      114.   
      115.   
      116.     /** 
      117.      * JSON.parseObject() 方法示例 
      118.      */  
      119.     private static void parseObjectMethod() {  
      120.         //将 json 字符串转为 JSONObject 对象  
      121.         JSONObject object = JSON.parseObject(json_student);  
      122.         //打印 JSONObject 对象  
      123.         System.out.println(object);  
      124.           
      125.         //将 json 字符串转为 Student 对象  JSON.parseObject(String text, Class<Student> clazz)  
      126.         Student student = JSON.parseObject(json_student, Student.class);  
      127.         //打印 Student 对象  
      128.         System.out.println(student.toString());  
      129.     }  
      130.   
      131.   
      132.   
      133.     /** 
      134.      * JSON.parseArray() 方法示例 
      135.      */  
      136.     private static void parseArrayMethod() {  
      137.         //将 json 字符串转为 JSONArray 对象  
      138.         JSONArray array = JSON.parseArray(json_array);  
      139.         //打印 JSONArray 对象  
      140.         System.out.println(array);  
      141.           
      142.         //将 json 字符串转为 List 集合  
      143.         List<Student> students = JSON.parseArray(json_array, Student.class);  
      144.         //打印 List 集合大小  
      145.         System.out.println("students.size() : " + students.size());  
      146.         //遍历 List 集合中的元素  
      147.         for(Student student : students)  
      148.             System.out.println(student.toString());  
      149.     }  
      150.   
      151.       
      152.       
      153.     /** 
      154.      * JSON.toJSON() 方法示例 
      155.      */  
      156.     private static void toJSONMethod() {  
      157.         //创建一个 Student 对象   
      158.         Student student_s = new Student(1, "Sherlock Holmes", 42, true, 1);   
      159.         //将 java bean 对象转为 JSONObject 对象  
      160.         JSONObject object = (JSONObject) JSON.toJSON(student_s);   
      161.           
      162.         //JSONObject 直接打印, 打印 toString() 或者 toJSONString() 输出结果是一样的  
      163.         System.out.println(object + " -- 打印 JSONOBject 本身");  
      164.         System.out.println(object.toString() + " -- 打印 JSONOBject.toString()");  
      165.         System.out.println(object.toJSONString() + " -- 打印 JSONOBject.toJSONString()");  
      166.           
      167.         //再创建一个 Student 对象  
      168.         Student student_j = new Student(2, "John Watson", 42, false, 1);  
      169.         //将两个 Student 对象放到 List 集合中  
      170.         List<Student> students = new ArrayList<Student>();  
      171.         students.add(student_s);  
      172.         students.add(student_j);  
      173.         //将 List 集合对象转为 JSONArray 对象  
      174.         JSONArray array = (JSONArray) JSON.toJSON(students);  
      175.           
      176.         String format_json = JSON.toJSONString(students, true);  
      177.         System.out.println(format_json);  
      178.           
      179.         //JSONArray 直接打印, 打印 toString() 或者 toJSONString() 输出结果是一样的  
      180.         System.out.println(array + " -- 打印 JSONArray 本身");  
      181.         System.out.println(array.toString() + " -- 打印 JSONArray.toString()");  
      182.         System.out.println(array.toJSONString() + " -- 打印 JSONArray.toJSONString()");  
      183.     }  
      184.   
      185.     /** 
      186.      * JSON.toJSONString 示例 
      187.      */  
      188.     private static void toJsonStringMethod() {  
      189.         //创建一个 Student 对象  
      190.         Student student = new Student(1, "Sherlock Holmes", 42, true, 1);   
      191.         //将 Student 对象转为 json 字符串   
      192.         String json = JSON.toJSONString(student);  
      193.         //打印 json 字符串   
      194.         System.out.println(json);  
      195.           
      196.         //将 Student 对象转为 json 字符串, 这个字符串是经过格式化的  
      197.         String format_json = JSON.toJSONString(student, true);  
      198.         //打印格式化的 json  
      199.         System.out.println(format_json);  
      200.     }  
      201.   
      202. }  
  • 相关阅读:
    linux下的epoll怎样高效处理百万连接
    poj 3020 Antenna Placement(二分无向图 匈牙利)
    放大的X(杭电2565)
    各种语言推断是否是手机设备
    【iOS开发-32】iOS程序真机调试须要购买调试证书怎么办?
    UIActionSheet 提示框
    关于ZEDboard
    javaScript 检測 能否够连接指定server
    陈-朱-兴- js写法【案例】:
    H5网页动画制作(页面切换、效果等)
  • 原文地址:https://www.cnblogs.com/yixianyixian/p/7426492.html
Copyright © 2011-2022 走看看