私の最近の露出は主に非 OOP 言語でした。
json 文字列 (オブジェクトの json 配列) を受け取り、オブジェクトのリスト (たとえばStudent
) を生成する関数を作成する必要があります。作成パターンを確認しましたが、適合しないようです。これらのオブジェクトを作成するためだけにヘルパー クラスを作成する必要があると思いますか。
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とTeacherのコンストラクターを作成する方がおそらく良いでしょう。
または、JSON文字列から学生のリストを作成する静的メソッドをStudentクラスに含めることもできます。
または、さまざまな種類のオブジェクトを作成するObjectFactoryクラスを作成することもできます。
すでにある種のクラスがある場合util
、この種の関数はそのクラスにうまく適合します。このためだけに完全に別のクラスを作成するつもりはありません。たとえば、次のようなものです。
public static List<Student> parseJsonToStudents(String jsonData) ...
ただし、Student
json String をパラメーターとして受け取り、Student
そこからオブジェクトを構築するコンストラクターをクラスに持つこともできます。 それは間違いなくOOの原則を利用しています。しかし、GSON パッケージはそのようなものの多くを時代遅れにするので、わざわざ自分でプログラミングしたくないかもしれません。その中には、データを解析してオブジェクトを構築するメソッドがありますfromJson()
。toJson()
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;
}