zoukankan      html  css  js  c++  java
  • 【Android 应用开发】 FastJson 使用详解

    博客地址 : 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 类定义

    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 转 JSONObjectJSONObject 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);
    	}
    
    }
    


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

  • 相关阅读:
    EOS 数据库RAM使用量的计算
    EOS require_auth函数
    EOS测试链智能合约部署调用
    安装EOS合约工具eosio.cdt
    Linux Ubuntu下搭建Flutter桌面环境
    VMware虚拟机与物理机共享文件的方法总结
    虚拟机macOS Mojave10.14安装XCode10.1
    VMware14 安装 macOS Mojave教程
    VMware 14安装OS X10.11
    Mac OS虚拟机安装VMware Tools的方法
  • 原文地址:https://www.cnblogs.com/hanshuliang/p/4215387.html
Copyright © 2011-2022 走看看