1

我最近的接触主要是非 OOP 语言,所以想知道下面的任何模式或实践。

我需要编写一个函数,它接受一个 json 字符串(对象的 json 数组)并生成对象列表(比如Student)。我检查了创作模式,但似乎不适合。你认为我应该写一个帮助类来创建这些对象吗?

4

3 回答 3

1

如果您已经有一种util类,那么这种功能将非常适合该类。我不会为此创建一个完全独立的课程。例如,类似:

public static List<Student> parseJsonToStudents(String jsonData) ...

但是,您可以在您的Student类中有一个构造函数,它接受一个 json String 作为参数并Student从中构造对象。 肯定会利用 OO 原则。但是GSON 包使很多这种东西过时了,你可能不想自己编程。它包含解析数据fromJson()toJson()为您构建对象的方法。

于 2012-11-09T02:27:03.567 回答
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 提到的,为StudentTeacher创建接受 JSON 字符串的构造函数可能会更好。

或者,您可以在 Student 类中有一个静态方法,该方法从 JSON 字符串创建一个学生列表。

或者您可以创建一个 ObjectFactory 类来创建不同类型的对象。

于 2012-11-09T02:29:16.423 回答
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;
}
于 2012-11-09T03:18:06.020 回答