FastJson的特点:
- FastJson数度快,无论序列化和反序列化,都是当之无愧的fast
- 功能强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)
- 零依赖(没有依赖其它任何类库)
FastJson的简单说明:
FastJson对于json格式字符串的解析主要用到了下面三个类:
- JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换
- JSONObject:fastJson提供的json对象
- JSONArray:fastJson提供json数组对象
单个JSON
String json = "{\"name\": \"xiaoming\",\"age\": \"16\",\"addr\": \"大连\"}";
// 字符串转化Map
Map<String, Object> jsonMap = JSON.parseObject(json);
// 字符串转化JSONObject(等同于Map)
JSONObject jSONObject = JSONObject.parseObject(json);
// json转化为字符串
String jsonstr = jSONObject.toString();
// 字符串转化实体类
Student student = JSON.parseObject(json, Student.class);
// JSONObject转化对象
Student s = JSONObject.parseObject(json, Student.class);
// 实体类转换为json
String studentJson = JSON.toJSONString(student);
数组形式string
String jsonarr = "[{\"name\": \"xiaoming\",\"age\": \"16\",\"addr\": \"大连\"},{\"name\": \"xiaohong\",\"age\": \"17\",\"addr\": \"背景\"},{\"name\": \"xiaoqiang\",\"age\": \"18\",\"addr\": \"上海\"}]";
// 数组形式的string转化为实体类集合
List<Student> jsonList = JSON.parseArray(jsonarr,Student.class);
// 数组形式的string转化为JSONArray(包含多个JSONObject)
JSONArray jsonArr = JSON.parseArray(jsonarr);
// 数组形式的string转化为实体类数组
Student[] arrStudent = JSON.parseObject(jsonarr,new TypeReference<Student[]>(){});
// 数组形式的string转化为实体类集合
List<Student> students = JSON.parseObject(jsonarr, new TypeReference<List<Student>>() {});
// 多个实体类转换为json数组形式的string
List<Student> list = new ArrayList<>();
list.add(student);
String studentJsons = JSON.toJSONString(list);