【Android 应用开发】 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
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  1. public static void main(String[] args) {  
  2.       
  3.     //创建一个 Student 对象  
  4.     Student student = new Student(1"Sherlock Holmes"42true1);   
  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
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  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"42true1);   
  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"42false1);  
  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
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  1. public static void main(String[] args) {  
  2.       
  3.     //创建 一个 Student 对象  
  4.     Student student = new Student(1"Sherlock Holmes"42true1);   
  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
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  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"42true1);  
  36.         // 再创建一个 Student 对象  
  37.         Student student_j = new Student(2"John Watson"42false1);  
  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"42true1);   
  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"42true1);   
  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"42false1);  
  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"42true1);   
  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. }  


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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值