数据解析框架之FastJson
演示实体类
import java.util.List; public class Student { public String name; public int age; public List<String> score; }
JSON.toJSONString方法的使用
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 与 上面的方法作用相同;
演示代码:
Student student = new Student(); student.age = 18; student.name = "张三"; ArrayList<String> list = new ArrayList<>(); list.add("90"); list.add("20"); list.add("50"); student.score = list; String s1 = JSON.toJSONString(student); System.out.println("json字符串数据 : " + s1); String s2 = JSON.toJSONString(student,true); System.out.println("json字符串格式化数据: " + s2);
打印输出:
JSON.toJSON 方法的使用
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() 都是相同的结果, 详见下面的示例;
Student student = new Student(); student.age = 18; student.name = "张三"; ArrayList<String> list = new ArrayList<>(); list.add("90"); list.add("20"); list.add("50"); student.score = list; ArrayList<Student> list2 = new ArrayList<>(); list2.add(student); JSONObject object = (JSONObject )JSON.toJSON(student); System.out.println("object"+object.toString()); JSONArray jsonArray = (JSONArray) JSON.toJSON(list2); System.out.println("jsonArray"+jsonArray.toString());
打印结果:
注意:JSONArray和JSONObject导包一定要导入的是alibaba下的包
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject;
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 对象类型;
String json_student = "{'score':['90','20','50'],'age':18,'name':'张三'}"; JSONObject object = JSON.parseObject(json_student); System.out.println("object:" + object); Student student = JSON.parseObject(json_student, Student.class); System.out.println("name=" + student.name + "age=" + student.age);
输出结果:
JSON.parse 方法
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 字符串;
String json_student = "{'score':['90','20','50'],'age':18,'name':'张三'}"; //将 json 字符串转为 JSONObect 对象 JSONObject object = (JSONObject) JSON.parse(json_student); //打印 JSONObject 对象 System.out.println(object); //将 json 字符串 转为 JSONArray 对象 ArrayList<String> json_array = new ArrayList<>(); json_array.add(json_student); JSONArray array = (JSONArray) JSON.parse(String.valueOf(json_array)); //打印 JSONArray 对象 System.out.println(array);
打印结果输出:
JSONObject 方法
获取 JSONObject 中元素 : 获取 String 就调用 jsonObject.getString("key"), 获取 boolean 调用 jsonObject.getBoolean("key"), 同理还可以获取其它类型的数据;
向 JSONObject 中添加元素 : object.put("action", "fuck");
向 JSONObject 中添加多个元素 : 将一个 Map 集合添加到 JSONObject 中, Map 集合的键必须是 String 类型;
移除 JSONObject 中的属性 : jsonObject.remove("key"), 参数是 键;
获取 JSONObject 中元素个数 : jsonObject.size();
//创建对象 JSONObject jsonObject = new JSONObject(); //向 JSONObject 中添加元素 jsonObject.put("name","张三"); jsonObject.put("age",18); //获取 JSONObject 中元素 Boolean isOpen = jsonObject.getBoolean("isOpen"); String name = jsonObject.getString("name"); Map<String, String> map = new HashMap<>(); map.put("home", "American"); map.put("school", "harvard"); // 向 JSONObject 中添加多个元素 jsonObject.putAll(map); //移除 JSONObject 中的属性 jsonObject.remove("name") ; //获取 JSONObject 中元素个数size int size = jsonObject.size();