JSON最初被用来表示javaScript中的对象,目前已经独立于javaScript,成为了嘴为常用的数据格式之一
Json的特点
- 轻量级的文本数据交换格式
- 具有自我描述性
- 比XML传输速度快(不需要起始和结束标签)
Json语法规则
- 两种数据结构:对象和数组(大括号为对象,中括号为数组)
- 对象中的数据由数据名和值构成(类似map中的键值对)
值的类型只能是字符串,数字,布尔值,null,数组,对象.数据之间要用逗号隔开 - 数组中的数据类型同名称/值对中值的类型
代码演示
public class FastJson2Stu {
public static void main(String[] args) {
ArrayList<String> skills = new ArrayList<>(); //json值可以用数组
skills.add("html");
skills.add("hadoop");
skills.add("hive");
String s = com.alibaba.fastjson.JSON.toJSONString(skills); //将List转化成json字符创
System.out.println(s);
KB21 kb21 = new KB21();
kb21.setAddress("小行路警官学院内九号楼108教室");
kb21.setSkills(skills);
ArrayList<Student> students = new ArrayList<>();
students.add(new Student("学生1",18,1));
students.add(new Student("学生2",16,2));
students.add(new Student("学生3",23,3));
students.add(new Student("学生4",12,4));
students.add(new Student("学生5",8,5));
students.add(new Student("学生6",29,6));
students.add(new Student("学生7",38,7));
students.add(new Student("学生8",18,8));
kb21.setStus(students);
ArrayList<String> teaSkills = new ArrayList<>(); //新list存储老师对象信息
teaSkills.add("c,c#,scala,python,go");
Teacher teacherGree = new Teacher("gree", 18, teaSkills);
kb21.setTeacher(teacherGree);
String s2 = com.alibaba.fastjson.JSON.toJSONString(kb21); //将对象转化为json字符串
System.out.println(s2);
}
}