博客地址:http://blog.csdn.net/shulianghan/article/details/41011605
fastjson 源码地址:
--GitHub:https://github.com/alibaba/fastjson;
--示例源码:https://github.com/alibaba/fastjson/wiki/Samples-DataBind;
--Jar下载:http://sourceforge.net/projects/fastjson/;
总结 :
Java Bean <--> json 字符串 <--> JSONObject 互相转化
json 字符串 与 Java Bean 对象 互相转化 :
--json 字符串 -> Java Bean 对象:JSON.parSEObject(String text,Class<Student> clazz)方法,示例 -Student student = JSON.parSEObject(json_student,Student.class);
--Java Bean 对象 -> json 字符串:JSON.toJSONString(Object object,boolean prettyFormat)方法,示例 -String format_json = JSON.toJSONString(student,true);
Java Bean 对象 与 JSONObject 对象 互相转化:
--Java Bean 对象 -> JSONObject 对象:JSON.toJSON(Object javaObject)方法,0)">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()方法,0)">object.toString();
Java Bean 对象 <--> json 字符串 <--> JSONArray 对象 互相转化
json 字符串 与 Java 集合 互相转化:
--json 字符串 -> Java 集合:JSON.parSEObject(String text,Class<Student> clazz)方法,0)">List<Student> students = JSON.parseArray(json_array,Student.class);
--Java 集合 -> json 字符串:toJSONString(Object object,204,0)">String json_array = JSON.toJSONString(students,0)">Java 集合 与 JSONArray 对象 互相转化:
--Java 集合 -> JSONArray 对象:JSON.toJSON(Object javaObject)方法,0)">JSONArray array = (JSONArray) JSON.toJSON(students);
--JSONArray 对象 -> Java 集合(没有直接转化方法) : 先转成 json 字符串,再转成 Java 集合;
json 字符串 与 JSONArray 对象 互相转化:
--json 字符串 -> JSONArray 对象:JSON.parseArray(String text)方法,0)">JSONArray array = JSON.parseArray(json_array);
--JSONArray 对象 -> json 字符串:jsonArray.toString() 方法;
一. JSON 简介
1. JSON 结构
(1) 对象@H_120_404@
对象简介:
--格式: 对象定义在 大括号 {} 中,中间的项由 逗号 隔开,每个项目都是 key : value 进行的;
--示例:{"age":42,"id":1,"male":true,"name":"Sherlock Holmes","schoolId":1};
--格式化后的:
- {
- "age":42,
- "id":1,
- "male":true,108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> "name":"SherlockHolmes",248)"> "schoolId":1
- }
(2) 数组@H_120_404@
数组简介:
--数组格式: 数组放在 中括号[] 中,在 [] 中有 n 个 {} 元素,每个元素用 逗号 隔开;
--数组示例:[{"age":42,"schoolId":1},{"age":42,"id":2,"male":false,"name":"John Watson","schoolId":1}] ;
--输出格式化后的数组:
二. JSON 相关用法
1.JSON.toJSONString 方法
(1) JSON.toJSONString(Object object)方法简介@H_120_404@
JSON.toJSONString(Object object)方法简介:
--方法定义:public static final String toJSONString(Object object);
--方法作用: 将 java bean 转为 json 字符串;
--方法位置:String com.alibaba.fastjson.JSON.toJSONString(Object object);
--参数介绍: Object object -> 要转换的实体类对象;
方法简介:
--public static final String toJSONString(Object object,boolean prettyFormat);
--方法作用:将 java bean 转为 json 字符串,并将 json 字符串格式化;
--String com.alibaba.fastjson.JSON.toJSONString(Object object,255)">参数介绍:Object object-> 要转换的实体类对象,boolean prettyFormat-> 是否将 json 字符串格式化 如果 false 与 上面的方法作用相同;
(2) JSON.toJSONString(Object object) 和 JSON.toJSONString(Object object,boolean prettyFormat)方法使用示例@H_120_404@
JavaBean 类定义: