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() { + } + } +