我最近的接触主要是非 OOP 语言,所以想知道下面的任何模式或实践。
我需要编写一个函数,它接受一个 json 字符串(对象的 json 数组)并生成对象列表(比如Student
)。我检查了创作模式,但似乎不适合。你认为我应该写一个帮助类来创建这些对象吗?
如果您已经有一种util
类,那么这种功能将非常适合该类。我不会为此创建一个完全独立的课程。例如,类似:
public static List<Student> parseJsonToStudents(String jsonData) ...
但是,您可以在您的Student
类中有一个构造函数,它接受一个 json String 作为参数并Student
从中构造对象。 那肯定会利用 OO 原则。但是GSON 包使很多这种东西过时了,你可能不想自己编程。它包含解析数据fromJson()
并toJson()
为您构建对象的方法。
您可以编写一个采用 JSON 字符串和类对象并返回包含给定类型对象的列表的方法:
public static <T> List<T> parseJsonList(String json, Class<T> theClass) {
// do stuff
}
用法:
List<Student> studentList = parseJsonList(studentJsonText, Student.class);
List<Teacher> teacherList = parseJsonList(teacherJsonText, Teacher.class);
正如@Jeff 提到的,为Student和Teacher创建接受 JSON 字符串的构造函数可能会更好。
或者,您可以在 Student 类中有一个静态方法,该方法从 JSON 字符串创建一个学生列表。
或者您可以创建一个 ObjectFactory 类来创建不同类型的对象。
public class Action {
public static class Response {
private int _resultCode;
private int _count = 0;
public Response() {}
public int getResultCode() { return _resultCode; }
public int getCount() { return _count; }
public void setResultCode(int rc) { _resultCode = rc; }
public void setCount(int c) { _count = c; }
}
private List<Response> responses = new ArrayList<Response>();
private String _name;
}