diff --git a/pom.xml b/pom.xml
index c20b489..a05d042 100644
--- a/pom.xml
+++ b/pom.xml
@@ -70,8 +70,16 @@
5.6.0
test
+
+ org.json
+ json
+ 20210307
+
+
+
+
diff --git a/src/main/java/com/github/hcsp/encapsulation/Main.java b/src/main/java/com/github/hcsp/encapsulation/Main.java
index 51ce4a1..3aad856 100644
--- a/src/main/java/com/github/hcsp/encapsulation/Main.java
+++ b/src/main/java/com/github/hcsp/encapsulation/Main.java
@@ -1,32 +1,49 @@
package com.github.hcsp.encapsulation;
-
+import org.json.JSONObject;
public class Main {
+ public Main() {
+ }
/*
- 假设你正在为学校开发一个学生分数记录系统
- 你和前端约定的JSON接口格式是:
- {
- "name": "张三",
- "retakingExam": true,
- "score": 59,
- "fail": true // 是否挂科,如果分数低于60则返回true,代表挂科
- }
- 请:
- 1. 设计并完成Student类
- 2. 挑选一种你喜欢的JSON类库,完成序列化/反序列化的方法
- */
+ 假设你正在为学校开发一个学生分数记录系统
+ 你和前端约定的JSON接口格式是:
+ {
+ "name": "张三",
+ "retakingExam": true,
+ "score": 59,
+ "fail": true // 是否挂科,如果分数低于60则返回true,代表挂科
+ }
+ 请:
+ 1. 设计并完成Student类
+ 2. 挑选一种你喜欢的JSON类库,完成序列化/反序列化的方法
+ */
public static void main(String[] args) {
Student student = new Student();
student.setName("张三");
student.setScore(60);
student.setRetakingExam(true);
- String json = serialize(student);
+ String json = serialize (student);
System.out.println(json);
- student = deserialize(json);
+ Student deserializedStudent = deserialize(json);
+ System.out.println(deserializedStudent.getName());
}
// 序列化:将Student类转换成JSON字符串
- public static String serialize(Student student) {}
+ public static String serialize(Student student) {
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("name", student.getName());
+ jsonObject.put("retakingExam", student.isRetakingExam());
+ jsonObject.put("score", student.getScore());
+ jsonObject.put("fail", student.getScore() < 60 ? true : false);
+ return jsonObject.toString();
+ }
// 反序列化:将JSON字符串转换成Student对象
- public static Student deserialize(String json) {}
+ public static Student deserialize(String json) {
+ JSONObject jsonObject = new JSONObject(json);
+ Student student = new Student();
+ student.setName(jsonObject.getString("name"));
+ student.setRetakingExam(jsonObject.getBoolean("retakingExam"));
+ student.setScore(jsonObject.getInt("score"));
+ return student;
+ }
}
diff --git a/src/main/java/com/github/hcsp/encapsulation/Student.java b/src/main/java/com/github/hcsp/encapsulation/Student.java
index 85d2f55..8b21a6c 100644
--- a/src/main/java/com/github/hcsp/encapsulation/Student.java
+++ b/src/main/java/com/github/hcsp/encapsulation/Student.java
@@ -1,13 +1,33 @@
package com.github.hcsp.encapsulation;
public class Student {
- // 请按照Main类的要求,补全本类
- /** 姓名 */
private String name;
-
- /** 是否重考。true为重考,falase为非重考。 */
+ private int score;
private boolean retakingExam;
- /** 分数 */
- private int score;
-}
+ public void setRetakingExam(boolean retakingExam) {
+ this.retakingExam = retakingExam;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+ public boolean isRetakingExam() {
+ return retakingExam;
+ }
+ public void setScore(int score){
+ this.score = score;
+ }
+
+ public int getScore() {
+ return score;
+ }
+
+ public Student() {
+ }
+ }
+