fastjson
包含了3个类:
- JSON:转换用
- JSONObject:代表json对象
- JSONArray:代表json对象数组
JSONObject类
- json对象类型
- 底层由Map实现
- put(key, value)添加属性
- get(key)获取json对象的数据
- 等其他类似Map的方法
JSONArray类
- 底层就是List
- 理解为json对象的数组,其中存放一个一个的json对象
- add
- remove
JSON类
主要实现json对象、json对象数组、java对象、json字符串之间的相互转换
主要方法:
- toJSONString() :实现json对象/java对象转换为json字符串
- parseObject():json字符串转换为json对象/java对象
- parseArray():json字符串转换为json对象数组/list(泛型)
- toJSON():java对象 转换 json对象
- toJavaObject():json对象转换java对象
JavaBean与json字符串互转
JavaBean ~ json字符串
方法1适用于:
- java对象转json字符串
- java集合转json字符串
- map转json字符串
Student student = new Student("张三", "123456");
//方法1:JSON类的toJSONString方法(方便快捷)
String str = JSON.toJSONString(student);
//方法2:JSON类的toJSON方法得到json对象,再调toString方法
JSONObject jsonObject = (JSONObject)JSON.toJSON(student);
String str = jsonObject.toString();
结果:{“name”:“王八”,“age”:20}
json字符串~JavaBean
String str = "{\"name\":\"xinwei\", \"age\":18}"; // 将字符串内部表示的双引号转义
Student stu = JSON.parseObject(str, Student.class);
JSON类的parseObject方法作用:将json字符转变成json对象或JavaBean对象
JSONObject jsonObject = JSON.parseObject(str);
Student stu = JSON.parseObject(str, Student.class);
JavaBean与json对象互转
javaBean ~ jsonObject
JSONObject jsonObject = (JSONObject)JSON.toJSON(student);
jsonObject ~ javaBean
Student stu = JSON.toJavaObject(jsonObject, Student.class);
JavaList与json对象数组(jsonArray)互转
JavaList ~ jsonArray
List<Student> stu_list = new ArrayList<>();
for(int i = 0; i < 3; i++){
stu_list.add(new Student("student" + i, i));
}
// JSON类的toJSON方法:该方法实现了将JavaBean对象 转为 json对象
JSONArray jsonArrays = (JSONArray)JSON.toJSON(stu_list);
//打印测试
for(int i=0;i<jsonArrays.size();i++){
System.out.println(jsonArrays.getJSONObject(i)); // 通过下标获取,和list很像
}
JSONObject jsonObject = jsonArrays.getJSONObject(i);
jsonArray ~ JavaList
List<Student> stu_list = new ArrayList<>();
// 循环遍历的json对象 ~ javabean,用list去接收也已!
for(int i = 0; i < jsonArrays.size(); i++){
Student stu = JSON.toJavaObject(JsonArrays.getJSONObject(i), Student.class);
stu_list.add(stu);
}
//打印测试
for(Student s : stu_list){
System.out.println(stu);
}
json字符串与json对象的互转
json字符串 ~ json对象
JSONObject jsonObject = JSON.parseObject(str);
json对象 ~ json字符串
String str = JSON.toJSONString(jsonObject);
json字符串 ~ json对象数组
// stu_list就是student对象列表
JSONArray jArray = JSON.parseArray(JSON.toJSONString(stu_list));