fastJSON
FastJson主要有三个类:
- JSON:FastJson解析器用于JSON格式字符串与JSON对象及JavaBean之间的转化。也是最基础的一个类,因为看过源码之后会发现,下面的两个类继承了JSON类,其中很多方法的实现也是基于JSON类中的parse()方法。
- JSONObject: FastJson提供的json对象,用于将String对象、javaBean、Collection等解析为JSON格式的对象
- JSONArray: FastJson提供json数组对象
对象与JSON字符串互相转换
已知JavaBean转为JSON字符串:JSONObject.toString(object1)
public static void main(String[] args) {
Student s=new Student(1,"李小华","三年级二班","第二实验小学");
String s1 = JSONObject.toJSONString(s);
System.out.println(s1);
}
控制台打印:
{“className”:“三年级二班”,“id”:1,“name”:“李小华”,“schoolName”:“第二实验小学”}
已知JSON字符串转为JavaBean:JSONObject.parseObject(str)
public static void main(String[] args) {
s1="{\"className\":\"三年级二班\",\"id\":1,\"name\":\"李小华\",\"schoolName\":\"第二实验小学\"}";
JSONObject jsonObject = JSONObject.parseObject(s1);
}
jsonObject格式:JSONObject实现了map<String, Object>接口。因此:
字符串(数组类型)与JSONArray之间的转换
模拟一个Javalist
Student s=new Student(1,"李小华","三年级二班","第二实验小学");
Student s1=new Student(2,"张小花","三年级一班","第二实验小学");
Student s2=new Student(3,"王大虎","三年级一班","第二实验小学");
Student s3=new Student(4,"钱小生","三年级一班","第二实验小学");
List<Student> students=new ArrayList<>();
students.add(s);students.add(s1);students.add(s2);students.add(s3);
已有JavaBeanlist。转为JSON字符串:JSONObject.toJSONString()
String s4 = JSONObject.toJSONString(students);
已有JSON字符串,转为JSONArry:JSONArray.parseArray()
JSONArray jsonArray = JSONArray.parseArray(s4);
已有javaBeanList,转为JSONarray:JSONArray.toJSON
JSONArray o =(JSONArray) JSONArray.toJSON(students);
三者形式如下
JSONArray 实现了 java.util.List< Object >类,内部是由JSONObject组成的List结构。
可以通过getJSONObject(i)获得相应位置上的JSONObject。
JSONObject jsonObject2 = o.getJSONObject(2);
System.out.println(jsonObject2);
控制台打印:
{“className”:“三年级一班”,“id”:3,“name”:“王大虎”,“schoolName”:“第二实验小学”}