博客地址 :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/ ;

总结 : 

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

 

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

-- 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};

-- 格式化后的 :

  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}] ;

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

  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 类定义 :

  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 的格式进行格式化了;

  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() 示例 :

  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. }

执行结果 :

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

  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. }

执行结果 :

  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() 方法 :

  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. }

执行结果 :

  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() 方法 :

  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. }

运行结果 :

  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 类型;

  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. }

执行结果 :

  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 类

  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. }

fastjson(转)的更多相关文章

  1. fastjson 混淆注意事项

    使用fastjson 注意事项,主要表现: 1.加了符号Annotation 的实体类,一使用就会奔溃 2.当有泛型属性时,一使用就奔溃 在调试的时候不会报错,当你要打包签名混淆包的时候,就会出现上述 ...

  2. Java的Json解析包FastJson使用

    阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser. ...

  3. fastJson使用

    fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,由阿里巴巴的工程师开发. 主要特点: 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson ...

  4. FASTJSON

    package com.hanqi.test; import java.util.ArrayList;import java.util.Date;import java.util.List; impo ...

  5. Android总结之json解析(FastJson Gson 对比)

    前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和 ...

  6. Android原生json和fastjson的简单使用

    android原生操作json数据 主要是两个类 JSONObject 操作对象     JONSArray操作json数组 对象转json //创建学生对象 Student student=new ...

  7. FastJson的简单实用

    一.FastJson的理解 在工作中,经常客服端需要和服务端进行通信,目前很多项目都采用JSON的方式进行数据传输,简单的参数可以通过手动拼接JSON字符串,但如果请求的参数过多,采用手动拼接JSON ...

  8. Android JSON、GSON、FastJson的封装与解析

    声明: 1.本帖只提供代码,不深入讲解原理.如果读者想要深入了解,那就不要在这个帖子上浪费时间了 2.客户端用的是Google官方的Volley访问服务器,具体了解Volley请戳 这里 3.本帖三种 ...

  9. java分享第十三天(fastjson生成和解析json数据,序列化和反序列化数据)

     fastjson简介:Fastjson是一个Java语言编写的高性能功能完善的JSON库.fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jack ...

  10. FastJson和AsyncHttpCLient

    Android的展示数据,除了上章所讲的本地存储外,大部分数据都来自于网络.首先介绍一下Android APP开发常见的网络操作方式.从网络层面上有底层的tcp/ip,也就是我们常见的socket套接 ...

随机推荐

  1. Git之Github使用(一):Push代码到Github

    Git之Github使用(一):Push代码到Github 热度 2已有 58 次阅读2016-8-26 17:56 |个人分类:常见问题|系统分类:移动开发| 互联网, commit, status ...

  2. 真正解决 thinkphp 验证码 出错 无法显示 问题

    今天做到验证码这一块想到tp自带验证图片  大喜单鼓捣半天不出来 一直是个小 X 官方提示:如果无法显示验证码,请检查:² PHP是否已经安装GD库支持:²输出之前是否有任何的输出(尤其是UTF8的B ...

  3. MFC中 用Static控件做超链接(可以实现变手形、下划线、字体变色等功能)

    1.新建一个基于对话框的工程MyLink,在对话框中拖一个Static控件,ID可改为IDC_SLink. 2.在头文件中添加成员变量: private: CRect m_Rect; CFont* m ...

  4. tomcat下配置https方式

    [本地HTTPS]①.<Connector SSLEnabled="true" clientAuth="false" keystoreFile=" ...

  5. 关于阿里 weex 的使用与案例

    1. 阿里宣布开源Weex http://mp.weixin.qq.com/s?__biz=MzA4MjA0MTc4NQ==&mid=504089541&idx=1&sn=3a ...

  6. 粗略。。Java项目设计模式之笔记----studying

    设计模式 设计模式:解决这个问题的一种行之有效的思想. 设计模式:用于解决特定环境下.反复出现的特定问题的解决方式. 设计模式学习概述 ★ 为什么要学习设计模式 1.设计模式都是一些相对优秀的解决方式 ...

  7. koajs 项目实战(二)

    此篇文章,接 koajs 项目实战(一)后写 (六)表单提交和参数接收 表单: <form method="post" action="./users/zhuce& ...

  8. 学写jQuery插件开发方法

    jQuery如此流行,各式各样的jQuery插件也是满天飞.你有没有想过把自己的一些常用的JS功能也写成jQuery插件呢?如果你的答案是肯定的,那么来吧!和我一起学写jQuery插件吧!   很多公 ...

  9. cocos2dx-3.0(8)------Label、LabelTTF、LabelAtlas、LabelBMFont使用之法

    ----我的生活,我的点点滴滴!! 最后一个LabelBMFont了,字体图集LabelBMFont,LabelBMFont类是一个基于位图的字体图集.是一个包括全部你须要于坐标数据一起显示在屏幕上的 ...

  10. 转:office 2016最新安装及激活教程(KMS)

    office 2016最新安装及激活教程(KMS)[亲测有效]!!   win7激活教程 博主的一个朋友,咳咳……你们懂得,想装office,于是我就上网找了一下激活的方法,亲测有效,而且也没有什么广 ...