文章目录
第一节.JSON
1.1 JSON是什么
- JSON,全称是
JavaScript Object Notation
,即 JavaScript对象标记法。 - JSON格式的创始人声称此格式永远不升级,这就表示这种格式具有长时间的稳定性,10 年前写的文件,10年后也能用,没有任何兼容性问题。
1.2 JSON的格式
- 数组(Array)用方括号(“
[]
”)表示。 - 对象(0bject)用大括号(“
{}
”)表示。 - 名称/值(name/value)组合成数组和对象。
- 名称(name)置于
双引号
中,值(value)有字符串、数值、布尔值、null、对象和数组
。 - 并列的数据之间用逗号(“
,
”)分隔
第二节.Java中JSON的使用
在Java中经常用FastJson
进行Json的序列化和反序列化。
2.1 序列化:Java对象 -> Json格式
public class JsonTest {
public static void main(String[] args) {
Student student = new Student();
student.setName("Jane");
student.setAge(26);
String s = JSON.toJSONString(student);
System.out.println(s);
}
}
class Student {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
输出结果为:
{"age":26,"name":"Jane"}
在这个示例中,我们使用FastJson的JSON类将Student 对象转换成JSON字符串。调用toJSONString()
方法时,FastJson会自动遍历Student 对象的所有字段,并将它们转换成JSON格式。
2.2 反序列化:Json格式 -> Java对象
public class JsonTest {
public static void main(String[] args) {
String json = "{\"name\":\"Jane\",\"age\":26}";
Student student = JSON.parseObject(json, Student.class);
System.out.println(student.getName());
System.out.println(student.getAge());
}
}
class Student {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
输出结果为:
Jane
26
在这个示例中,我们使用FastJson的JSON类将JSON字符串转换成Person对象。调用parseObject()
方法时,FastJson会自动将JSON字符串解析成Java对象。