【Android 应用开发】 FastJson 使用详解

举报
韩曙亮 发表于 2022/01/11 01:13:30 2022/01/11
【摘要】 博客地址 : http://blog.csdn.net/shulianghan/article/details/41011605 fastjson 源码地址 :  -- GitHub : https://github.com/alibaba/fastjson ; -- 示例源码 : https:...

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


fastjson 源码地址

-- GitHubhttps://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};

-- 格式化后的

{
	"age":42,
	"id":1,
	"male":true,
	"name":"Sherlock Holmes",
	"schoolId":1
}



(2) 数组


数组简介

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

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

-- 输出格式化后的数组

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




二. 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 类定义


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

main 函数代码


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

执行结果

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

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

{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1}
{
	"age":42,
	"id":1,
	"male":true,
	"name":"Sherlock Holmes",
	"schoolId":1
}



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 转 JSONObjectJSONObject object = (JSONObject) JSON.toJSON(student_s)

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


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



(2) 示例


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


Main() 示例


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

执行结果

{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1} -- 打印 JSONOBject 本身
{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1} -- 打印 JSONOBject.toString()
{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1} -- 打印 JSONOBject.toJSONString()
[{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}] -- 打印 JSONArray 本身
[{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}] -- 打印 JSONArray.toString()
[{"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() 代码


  
  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. public static void main(String[] args) {
  4. //将 json 字符串转为 JSONArray 对象
  5. JSONArray array = JSON.parseArray(json_array);
  6. //打印 JSONArray 对象
  7. System.out.println(array);
  8. //将 json 字符串转为 List 集合
  9. List<Student> students = JSON.parseArray(json_array, Student.class);
  10. //打印 List 集合大小
  11. System.out.println("students.size() : " + students.size());
  12. //遍历 List 集合中的元素
  13. for(Student student : students)
  14. System.out.println(student.toString());
  15. }

执行结果

[{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}]
students.size() : 2
Student [id=1, name=Sherlock Holmes, age=42, isMale=true, schoolId=1]
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() 方法


  
  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. public static void main(String[] args) {
  4. //将 json 字符串转为 JSONObject 对象
  5. JSONObject object = JSON.parseObject(json_student);
  6. //打印 JSONObject 对象
  7. System.out.println(object);
  8. //将 json 字符串转为 Student 对象
  9. Student student = JSON.parseObject(json_student, Student.class);
  10. //打印 Student 对象
  11. System.out.println(student.toString());
  12. }

执行结果

{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1}
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() 方法


  
  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. public static void main(String[] args) {
  4. //将 json 字符串转为 JSONObect 对象
  5. JSONObject object = (JSONObject) JSON.parse(json_student);
  6. //打印 JSONObject 对象
  7. System.out.println(object);
  8. //将 json 字符串 转为 JSONArray 对象
  9. JSONArray array = (JSONArray) JSON.parse(json_array);
  10. //打印 JSONArray 对象
  11. System.out.println(array);
  12. }

运行结果

{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1}
[{"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 类型;


  
  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() 函数代码


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


执行结果

{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1}
age : 42 , male : true
{"action":"fuck","age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1}
{"action":"fuck","age":42,"home":"American","id":1,"male":true,"name":"Sherlock Holmes","school":"harvard","schoolId":1}
{"age":42,"home":"American","id":1,"male":true,"name":"Sherlock Holmes","school":"harvard","schoolId":1}
7



四. 所有相关代码示例



1. Java Bean 类



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


2. JSON 相关方法 Main 示例



  
  1. package cn.org.octopus.fastjson;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import cn.org.octopus.fastjson.beans.Student;
  7. import com.alibaba.fastjson.JSON;
  8. import com.alibaba.fastjson.JSONArray;
  9. import com.alibaba.fastjson.JSONObject;
  10. public class Main {
  11. //字符串内容 [{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}]
  12. 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}]";
  13. //该字符串是 {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1} 注意将 " 转为 \"
  14. public static final String json_student = "{\"age\":42,\"id\":1,\"male\":true,\"name\":\"Sherlock Holmes\",\"schoolId\":1}";
  15. public static void main(String[] args) {
  16. }
  17. /**
  18. * JSONArray 相关方法
  19. */
  20. private static void JSONArrayMethod() {
  21. // 创建一个 Student 对象
  22. Student student_s = new Student(1, "Sherlock Holmes", 42, true, 1);
  23. // 再创建一个 Student 对象
  24. Student student_j = new Student(2, "John Watson", 42, false, 1);
  25. // 将两个 Student 对象放到 List 集合中
  26. List<Student> students = new ArrayList<Student>();
  27. students.add(student_s);
  28. students.add(student_j);
  29. // 将 List 集合对象转为 JSONArray 对象
  30. JSONArray array = (JSONArray) JSON.toJSON(students);
  31. System.out.println("List -> JSONArray : " + array);
  32. //将 List 集合 转化成 json 字符串
  33. String json_array = JSON.toJSONString(students, true);
  34. System.out.println("List -> json Str" + json_array);
  35. //json 字符串转为 List 集合
  36. List<Student> students1 = JSON.parseArray(json_array, Student.class);
  37. System.out.println("json Str -> List : " + students1);
  38. //json 字符串转 JSONArray
  39. JSONArray array1 = JSON.parseArray(json_array);
  40. System.out.println("json Str -> JSONArray : " + array1);
  41. }
  42. /**
  43. * JSONObject 相关方法
  44. */
  45. private static void JSONObjectMethod() {
  46. //创建 一个 Student 对象
  47. Student student = new Student(1, "Sherlock Holmes", 42, true, 1);
  48. //将 Java Bean 对象转为 JSONObject 对象
  49. JSONObject object = (JSONObject) JSON.toJSON(student);
  50. //打印 JSONObject 对象
  51. System.out.println(object.toString());
  52. //获取 JSONObject 对象的 age 和 male 值
  53. String age = object.getString("age");
  54. boolean isMale = object.getBoolean("male");
  55. System.out.println("age : " + age + " , male : " + isMale);
  56. //向 JSONObject 对象中添加单个属性
  57. object.put("action", "fuck");
  58. System.out.println(object.toString());
  59. //向 JSONObject 对象中添加多个属性
  60. Map<String, String> map = new HashMap<String, String>();
  61. map.put("home", "American");
  62. map.put("school", "harvard");
  63. object.putAll(map);
  64. System.out.println(object.toJSONString());
  65. //移除 JSONObject 对象中的属性
  66. object.remove("action");
  67. System.out.println(object);
  68. //获取 JSONObject 中的属性个数
  69. System.out.println(object.size());
  70. }
  71. /**
  72. * JSON.parse() 方法示例
  73. */
  74. private static void parseMethod() {
  75. //将 json 字符串转为 JSONObect 对象
  76. JSONObject object = (JSONObject) JSON.parse(json_student);
  77. //打印 JSONObject 对象
  78. System.out.println(object);
  79. //将 json 字符串 转为 JSONArray 对象
  80. JSONArray array = (JSONArray) JSON.parse(json_array);
  81. //打印 JSONArray 对象
  82. System.out.println(array);
  83. }
  84. /**
  85. * JSON.parseObject() 方法示例
  86. */
  87. private static void parseObjectMethod() {
  88. //将 json 字符串转为 JSONObject 对象
  89. JSONObject object = JSON.parseObject(json_student);
  90. //打印 JSONObject 对象
  91. System.out.println(object);
  92. //将 json 字符串转为 Student 对象 JSON.parseObject(String text, Class<Student> clazz)
  93. Student student = JSON.parseObject(json_student, Student.class);
  94. //打印 Student 对象
  95. System.out.println(student.toString());
  96. }
  97. /**
  98. * JSON.parseArray() 方法示例
  99. */
  100. private static void parseArrayMethod() {
  101. //将 json 字符串转为 JSONArray 对象
  102. JSONArray array = JSON.parseArray(json_array);
  103. //打印 JSONArray 对象
  104. System.out.println(array);
  105. //将 json 字符串转为 List 集合
  106. List<Student> students = JSON.parseArray(json_array, Student.class);
  107. //打印 List 集合大小
  108. System.out.println("students.size() : " + students.size());
  109. //遍历 List 集合中的元素
  110. for(Student student : students)
  111. System.out.println(student.toString());
  112. }
  113. /**
  114. * JSON.toJSON() 方法示例
  115. */
  116. private static void toJSONMethod() {
  117. //创建一个 Student 对象
  118. Student student_s = new Student(1, "Sherlock Holmes", 42, true, 1);
  119. //将 java bean 对象转为 JSONObject 对象
  120. JSONObject object = (JSONObject) JSON.toJSON(student_s);
  121. //JSONObject 直接打印, 打印 toString() 或者 toJSONString() 输出结果是一样的
  122. System.out.println(object + " -- 打印 JSONOBject 本身");
  123. System.out.println(object.toString() + " -- 打印 JSONOBject.toString()");
  124. System.out.println(object.toJSONString() + " -- 打印 JSONOBject.toJSONString()");
  125. //再创建一个 Student 对象
  126. Student student_j = new Student(2, "John Watson", 42, false, 1);
  127. //将两个 Student 对象放到 List 集合中
  128. List<Student> students = new ArrayList<Student>();
  129. students.add(student_s);
  130. students.add(student_j);
  131. //将 List 集合对象转为 JSONArray 对象
  132. JSONArray array = (JSONArray) JSON.toJSON(students);
  133. String format_json = JSON.toJSONString(students, true);
  134. System.out.println(format_json);
  135. //JSONArray 直接打印, 打印 toString() 或者 toJSONString() 输出结果是一样的
  136. System.out.println(array + " -- 打印 JSONArray 本身");
  137. System.out.println(array.toString() + " -- 打印 JSONArray.toString()");
  138. System.out.println(array.toJSONString() + " -- 打印 JSONArray.toJSONString()");
  139. }
  140. /**
  141. * JSON.toJSONString 示例
  142. */
  143. private static void toJsonStringMethod() {
  144. //创建一个 Student 对象
  145. Student student = new Student(1, "Sherlock Holmes", 42, true, 1);
  146. //将 Student 对象转为 json 字符串
  147. String json = JSON.toJSONString(student);
  148. //打印 json 字符串
  149. System.out.println(json);
  150. //将 Student 对象转为 json 字符串, 这个字符串是经过格式化的
  151. String format_json = JSON.toJSONString(student, true);
  152. //打印格式化的 json
  153. System.out.println(format_json);
  154. }
  155. }


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

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/41011605

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。