我最近的曝光主要是针对非OOP语言的,所以我们想知道下面的任何模式或做法。
我需要编写一个函数,它接受一个json字符串(json对象数组)并生成对象列表(比如Student
)。我检查了creational patterns,但似乎不合适。你认为我应该编写一个帮助类来创建这些对象。
答案 0 :(得分:1)
如果你已经拥有一种util
类,那么这类函数很适合该类。我不会为此而完全独立的课程。例如,像:
public static List<Student> parseJsonToStudents(String jsonData) ...
但是,您可以在Student
类中使用构造函数,该构造函数接受json String作为参数,并从中构造Student
对象。 那肯定会利用OO原则。但是GSON package使得很多这类东西过时了,你可能不想打扰自己编程。它有fromJson()
和toJson()
方法,它们将解析数据并为您构建对象。
答案 1 :(得分:1)
您可以编写一个接受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所提到的,为学生和教师创建接受JSON字符串的构造函数可能会更好。
或者您可以在Student类中使用静态方法从JSON字符串创建学生列表。
或者您可以创建一个ObjectFactory类来创建不同类型的对象。
答案 2 :(得分:0)
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;
}