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/ ;
总结 :
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};
-- 格式化后的 :
- {
- "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 类定义 :
- package cn.org.octopus.fastjson.beans;
- public class Student {
- private int id;
- private String name;
- private int age;
- private boolean isMale;
- private int schoolId;
- public Student() {
- super();
- }
- public Student(int id, String name, int age, boolean isMale, int schoolId) {
- super();
- this.id = id;
- this.name = name;
- this.age = age;
- this.isMale = isMale;
- this.schoolId = schoolId;
- }
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public boolean isMale() {
- return isMale;
- }
- public void setMale(boolean isMale) {
- this.isMale = isMale;
- }
- public int getSchoolId() {
- return schoolId;
- }
- public void setSchoolId(int schoolId) {
- this.schoolId = schoolId;
- }
- @Override
- public String toString() {
- return "Student [id=" + id + ", name=" + name + ", age=" + age
- + ", isMale=" + isMale + ", schoolId=" + schoolId + "]";
- }
- }
main 函数代码 :
- public static void main(String[] args) {
- //创建一个 Student 对象
- Student student = new Student(1, "Sherlock Holmes", 42, true, 1);
- //将 Student 对象转为 json 字符串
- String json = JSON.toJSONString(student);
- //打印 json 字符串
- System.out.println(json);
- //将 Student 对象转为 json 字符串, 这个字符串是经过格式化的
- String format_json = JSON.toJSONString(student, true);
- //打印格式化的 json
- System.out.println(format_json);
- }
执行结果 :
-- 第一个结果 : 该结果没有经过格式化, 只是将 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 转 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() 示例 :
- public class Main {
- //该字符串是 {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1} 注意将 " 转为 \"
- public static final String json_student = "{\"age\":42,\"id\":1,\"male\":true,\"name\":\"Sherlock Holmes\",\"schoolId\":1}";
- public static void main(String[] args) {
- //创建一个 Student 对象
- Student student_s = new Student(1, "Sherlock Holmes", 42, true, 1);
- //将 java bean 对象转为 JSONObject 对象
- JSONObject object = (JSONObject) JSON.toJSON(student_s);
- //JSONObject 直接打印, 打印 toString() 或者 toJSONString() 输出结果是一样的
- System.out.println(object + " -- 打印 JSONOBject 本身");
- System.out.println(object.toString() + " -- 打印 JSONOBject.toString()");
- System.out.println(object.toJSONString() + " -- 打印 JSONOBject.toJSONString()");
- //再创建一个 Student 对象
- Student student_j = new Student(2, "John Watson", 42, false, 1);
- //将两个 Student 对象放到 List 集合中
- List<Student> students = new ArrayList<Student>();
- students.add(student_s);
- students.add(student_j);
- //将 List 集合对象转为 JSONArray 对象
- JSONArray array = (JSONArray) JSON.toJSON(students);
- //JSONArray 直接打印, 打印 toString() 或者 toJSONString() 输出结果是一样的
- System.out.println(array + " -- 打印 JSONArray 本身");
- System.out.println(array.toString() + " -- 打印 JSONArray.toString()");
- System.out.println(array.toJSONString() + " -- 打印 JSONArray.toJSONString()");
- }
执行结果 :
- {"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() 代码 :
- //字符串内容 [{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}]
- 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}]";
- public static void main(String[] args) {
- //将 json 字符串转为 JSONArray 对象
- JSONArray array = JSON.parseArray(json_array);
- //打印 JSONArray 对象
- System.out.println(array);
- //将 json 字符串转为 List 集合
- List<Student> students = JSON.parseArray(json_array, Student.class);
- //打印 List 集合大小
- System.out.println("students.size() : " + students.size());
- //遍历 List 集合中的元素
- for(Student student : students)
- System.out.println(student.toString());
- }
执行结果 :
- [{"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() 方法 :
- //该字符串是 {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1} 注意将 " 转为 \"
- public static final String json_student = "{\"age\":42,\"id\":1,\"male\":true,\"name\":\"Sherlock Holmes\",\"schoolId\":1}";
- public static void main(String[] args) {
- //将 json 字符串转为 JSONObject 对象
- JSONObject object = JSON.parseObject(json_student);
- //打印 JSONObject 对象
- System.out.println(object);
- //将 json 字符串转为 Student 对象
- Student student = JSON.parseObject(json_student, Student.class);
- //打印 Student 对象
- System.out.println(student.toString());
- }
执行结果 :
- {"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() 方法 :
- //该字符串是 {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1} 注意将 " 转为 \"
- public static final String json_student = "{\"age\":42,\"id\":1,\"male\":true,\"name\":\"Sherlock Holmes\",\"schoolId\":1}";
- public static void main(String[] args) {
- //将 json 字符串转为 JSONObect 对象
- JSONObject object = (JSONObject) JSON.parse(json_student);
- //打印 JSONObject 对象
- System.out.println(object);
- //将 json 字符串 转为 JSONArray 对象
- JSONArray array = (JSONArray) JSON.parse(json_array);
- //打印 JSONArray 对象
- System.out.println(array);
- }
运行结果 :
- {"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 类型;
- //向 JSONObject 对象中添加多个属性
- Map<String, String> map = new HashMap<String, String>();
- map.put("home", "American");
- map.put("school", "harvard");
- object.putAll(map);
-- 移除 JSONObject 中的属性 : jsonObject.remove("key"), 参数是 键;
-- 获取 JSONObject 中元素个数 : jsonObject.size();
2. 代码示例
Main() 函数代码 :
- public static void main(String[] args) {
- //创建 一个 Student 对象
- Student student = new Student(1, "Sherlock Holmes", 42, true, 1);
- //将 Java Bean 对象转为 JSONObject 对象
- JSONObject object = (JSONObject) JSON.toJSON(student);
- //打印 JSONObject 对象
- System.out.println(object.toString());
- //获取 JSONObject 对象的 age 和 male 值
- String age = object.getString("age");
- boolean isMale = object.getBoolean("male");
- System.out.println("age : " + age + " , male : " + isMale);
- //向 JSONObject 对象中添加单个属性
- object.put("action", "fuck");
- System.out.println(object.toString());
- //向 JSONObject 对象中添加多个属性
- Map<String, String> map = new HashMap<String, String>();
- map.put("home", "American");
- map.put("school", "harvard");
- object.putAll(map);
- System.out.println(object.toJSONString());
- //移除 JSONObject 对象中的属性
- object.remove("action");
- System.out.println(object);
- //获取 JSONObject 中的属性个数
- System.out.println(object.size());
- }
执行结果 :
- {"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 类
- package cn.org.octopus.fastjson.beans;
- public class Student {
- private int id;
- private String name;
- private int age;
- private boolean isMale;
- private int schoolId;
- public Student() {
- super();
- }
- public Student(int id, String name, int age, boolean isMale, int schoolId) {
- super();
- this.id = id;
- this.name = name;
- this.age = age;
- this.isMale = isMale;
- this.schoolId = schoolId;
- }
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public boolean isMale() {
- return isMale;
- }
- public void setMale(boolean isMale) {
- this.isMale = isMale;
- }
- public int getSchoolId() {
- return schoolId;
- }
- public void setSchoolId(int schoolId) {
- this.schoolId = schoolId;
- }
- @Override
- public String toString() {
- return "Student [id=" + id + ", name=" + name + ", age=" + age
- + ", isMale=" + isMale + ", schoolId=" + schoolId + "]";
- }
- }
2. JSON 相关方法 Main 示例
- package cn.org.octopus.fastjson;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import cn.org.octopus.fastjson.beans.Student;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- public class Main {
- //字符串内容 [{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}]
- 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}]";
- //该字符串是 {"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1} 注意将 " 转为 \"
- public static final String json_student = "{\"age\":42,\"id\":1,\"male\":true,\"name\":\"Sherlock Holmes\",\"schoolId\":1}";
- public static void main(String[] args) {
- }
- /**
- * JSONArray 相关方法
- */
- private static void JSONArrayMethod() {
- // 创建一个 Student 对象
- Student student_s = new Student(1, "Sherlock Holmes", 42, true, 1);
- // 再创建一个 Student 对象
- Student student_j = new Student(2, "John Watson", 42, false, 1);
- // 将两个 Student 对象放到 List 集合中
- List<Student> students = new ArrayList<Student>();
- students.add(student_s);
- students.add(student_j);
- // 将 List 集合对象转为 JSONArray 对象
- JSONArray array = (JSONArray) JSON.toJSON(students);
- System.out.println("List -> JSONArray : " + array);
- //将 List 集合 转化成 json 字符串
- String json_array = JSON.toJSONString(students, true);
- System.out.println("List -> json Str" + json_array);
- //json 字符串转为 List 集合
- List<Student> students1 = JSON.parseArray(json_array, Student.class);
- System.out.println("json Str -> List : " + students1);
- //json 字符串转 JSONArray
- JSONArray array1 = JSON.parseArray(json_array);
- System.out.println("json Str -> JSONArray : " + array1);
- }
- /**
- * JSONObject 相关方法
- */
- private static void JSONObjectMethod() {
- //创建 一个 Student 对象
- Student student = new Student(1, "Sherlock Holmes", 42, true, 1);
- //将 Java Bean 对象转为 JSONObject 对象
- JSONObject object = (JSONObject) JSON.toJSON(student);
- //打印 JSONObject 对象
- System.out.println(object.toString());
- //获取 JSONObject 对象的 age 和 male 值
- String age = object.getString("age");
- boolean isMale = object.getBoolean("male");
- System.out.println("age : " + age + " , male : " + isMale);
- //向 JSONObject 对象中添加单个属性
- object.put("action", "fuck");
- System.out.println(object.toString());
- //向 JSONObject 对象中添加多个属性
- Map<String, String> map = new HashMap<String, String>();
- map.put("home", "American");
- map.put("school", "harvard");
- object.putAll(map);
- System.out.println(object.toJSONString());
- //移除 JSONObject 对象中的属性
- object.remove("action");
- System.out.println(object);
- //获取 JSONObject 中的属性个数
- System.out.println(object.size());
- }
- /**
- * JSON.parse() 方法示例
- */
- private static void parseMethod() {
- //将 json 字符串转为 JSONObect 对象
- JSONObject object = (JSONObject) JSON.parse(json_student);
- //打印 JSONObject 对象
- System.out.println(object);
- //将 json 字符串 转为 JSONArray 对象
- JSONArray array = (JSONArray) JSON.parse(json_array);
- //打印 JSONArray 对象
- System.out.println(array);
- }
- /**
- * JSON.parseObject() 方法示例
- */
- private static void parseObjectMethod() {
- //将 json 字符串转为 JSONObject 对象
- JSONObject object = JSON.parseObject(json_student);
- //打印 JSONObject 对象
- System.out.println(object);
- //将 json 字符串转为 Student 对象 JSON.parseObject(String text, Class<Student> clazz)
- Student student = JSON.parseObject(json_student, Student.class);
- //打印 Student 对象
- System.out.println(student.toString());
- }
- /**
- * JSON.parseArray() 方法示例
- */
- private static void parseArrayMethod() {
- //将 json 字符串转为 JSONArray 对象
- JSONArray array = JSON.parseArray(json_array);
- //打印 JSONArray 对象
- System.out.println(array);
- //将 json 字符串转为 List 集合
- List<Student> students = JSON.parseArray(json_array, Student.class);
- //打印 List 集合大小
- System.out.println("students.size() : " + students.size());
- //遍历 List 集合中的元素
- for(Student student : students)
- System.out.println(student.toString());
- }
- /**
- * JSON.toJSON() 方法示例
- */
- private static void toJSONMethod() {
- //创建一个 Student 对象
- Student student_s = new Student(1, "Sherlock Holmes", 42, true, 1);
- //将 java bean 对象转为 JSONObject 对象
- JSONObject object = (JSONObject) JSON.toJSON(student_s);
- //JSONObject 直接打印, 打印 toString() 或者 toJSONString() 输出结果是一样的
- System.out.println(object + " -- 打印 JSONOBject 本身");
- System.out.println(object.toString() + " -- 打印 JSONOBject.toString()");
- System.out.println(object.toJSONString() + " -- 打印 JSONOBject.toJSONString()");
- //再创建一个 Student 对象
- Student student_j = new Student(2, "John Watson", 42, false, 1);
- //将两个 Student 对象放到 List 集合中
- List<Student> students = new ArrayList<Student>();
- students.add(student_s);
- students.add(student_j);
- //将 List 集合对象转为 JSONArray 对象
- JSONArray array = (JSONArray) JSON.toJSON(students);
- String format_json = JSON.toJSONString(students, true);
- System.out.println(format_json);
- //JSONArray 直接打印, 打印 toString() 或者 toJSONString() 输出结果是一样的
- System.out.println(array + " -- 打印 JSONArray 本身");
- System.out.println(array.toString() + " -- 打印 JSONArray.toString()");
- System.out.println(array.toJSONString() + " -- 打印 JSONArray.toJSONString()");
- }
- /**
- * JSON.toJSONString 示例
- */
- private static void toJsonStringMethod() {
- //创建一个 Student 对象
- Student student = new Student(1, "Sherlock Holmes", 42, true, 1);
- //将 Student 对象转为 json 字符串
- String json = JSON.toJSONString(student);
- //打印 json 字符串
- System.out.println(json);
- //将 Student 对象转为 json 字符串, 这个字符串是经过格式化的
- String format_json = JSON.toJSONString(student, true);
- //打印格式化的 json
- System.out.println(format_json);
- }
- }
fastjson(转)的更多相关文章
- fastjson 混淆注意事项
使用fastjson 注意事项,主要表现: 1.加了符号Annotation 的实体类,一使用就会奔溃 2.当有泛型属性时,一使用就奔溃 在调试的时候不会报错,当你要打包签名混淆包的时候,就会出现上述 ...
- Java的Json解析包FastJson使用
阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser. ...
- fastJson使用
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,由阿里巴巴的工程师开发. 主要特点: 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson ...
- FASTJSON
package com.hanqi.test; import java.util.ArrayList;import java.util.Date;import java.util.List; impo ...
- Android总结之json解析(FastJson Gson 对比)
前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和 ...
- Android原生json和fastjson的简单使用
android原生操作json数据 主要是两个类 JSONObject 操作对象 JONSArray操作json数组 对象转json //创建学生对象 Student student=new ...
- FastJson的简单实用
一.FastJson的理解 在工作中,经常客服端需要和服务端进行通信,目前很多项目都采用JSON的方式进行数据传输,简单的参数可以通过手动拼接JSON字符串,但如果请求的参数过多,采用手动拼接JSON ...
- Android JSON、GSON、FastJson的封装与解析
声明: 1.本帖只提供代码,不深入讲解原理.如果读者想要深入了解,那就不要在这个帖子上浪费时间了 2.客户端用的是Google官方的Volley访问服务器,具体了解Volley请戳 这里 3.本帖三种 ...
- java分享第十三天(fastjson生成和解析json数据,序列化和反序列化数据)
fastjson简介:Fastjson是一个Java语言编写的高性能功能完善的JSON库.fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jack ...
- FastJson和AsyncHttpCLient
Android的展示数据,除了上章所讲的本地存储外,大部分数据都来自于网络.首先介绍一下Android APP开发常见的网络操作方式.从网络层面上有底层的tcp/ip,也就是我们常见的socket套接 ...
随机推荐
- 关于AutoLayout(自动布局)那些事儿
这是博主的WWDC2012笔记系列中的一篇,完整的笔记列表可以参看这里.如果您是首次来到本站,也许您会有兴趣通过RSS,或者通过页面左侧的邮件订阅的方式订阅本站. AutoLayout在去年的WWDC ...
- Failed to fetch URL http://dl-ssl.google.com/android/repository/repository.xml, reason:
Failed to fetch URL http://dl-ssl.google.com/android/repository/repository.xml, reason: Connection t ...
- MFC中 在SDI模式下的视图中添加按钮的方法
在单文档视图(SDI)结构中,视图一般用来显示数据.但是,有时也希望在视图中显示按钮或其他的控件,以满足用户的需要.下面是手动添加按钮并使按钮具有响应事件的功能的方法. 第一步:添加一个按钮 ...
- css :before 和 :after
:before p:before 在每个 <p> 元素的内容之前插入内容. 2 :after p:after 在每个 <p> 元素的内容之后插入内容. 2 <!DOCTY ...
- VS2010 C#调用C++ DLL文件 【转】
http://www.soaspx.com/dotnet/csharp/csharp_20110406_7469.html 背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第 ...
- nginx rewrite arg 带问号的地址转发参数处理?Nginx重定向的参数问题
Nginx重定向的参数问题 在给某网站写rewrite重定向规则时,碰到了这个关于重定向的参数处理问题.默认的情况下,Nginx在进行rewrite后都会自动添加上旧地址中的参数部分,而这对于重定向到 ...
- 转: 微信开源C/C++ RPC框架PhxRPC
转自: http://mp.weixin.qq.com/s?__biz=MzI4NDMyNTU2Mw==&mid=2247483734&idx=1&sn=da364812eca ...
- linux中find的用法
找所在目录的文件用 find -name “file*” -print #注意不要用加文件路径,查找文件也好用双双引号括住: 也可以 find ./ -name “file*” -print
- 选择一个 Python Web 框架:Django vs Flask vs Pyramid
Pyramid, Django, 和 Flask都是优秀的框架,为项目选择其中的哪一个都是伤脑筋的事.我们将会用三种框架实现相同功能的应用来更容易的对比三者.也可以直接跳到框架实战(Framework ...
- VUE 路由变化页面数据不刷新问题
出现这种情况是因为依赖路由的params参数获取写在created生命周期里面,因为相同路由二次甚至多次加载的关系 没有达到监听,退出页面再进入另一个文章页面并不会运行created组件生命周期,导致 ...