私はいくつかのJavaクラスを持っておりMyClass1
、MyClass2
その状態はjsonオブジェクトに保存されています:
"MyClass1":[{"var1":"value1","var2":"value2"},{"var1":"value3","var2":"value4"}]
"MyClass2":{"var11":"value5","var22":"value6"}
ここで、for help を使用して Json オブジェクトを Java オブジェクトに解析する汎用メソッドを作成したいと思いnet.sf.json
ます。
MyClass1 から始めましょう - List<MyClass1>
json で記述された 2 つのオブジェクトを含む を作成したいと思います。
1: public static <T> List<T> loadBEsFromJson(final File jsonInputFile, final Class<T> tClazz) throws IOException {
2: final List<T> result = new ArrayList<T>();
3: final JSONObject input = parseFileToJSONObject(jsonInputFile);
4: if (input.containsKey(tClazz.toString())) {
5: JSONArray arr = input.getJSONArray(tClazz.toString()); //VALID???
6: for (int i = 0; i < arr.size(); i++) {
7: JSONObject obj = arr.getJSONObject(i);
8: //now, how do I create an Object of type T?
9: }
10: }
11: return result;
12:}
私の最初の質問は - 5行目は有効ですか? 私の 2 番目の質問は 8 行目です。ある時点で type のオブジェクトを作成したいのですT
が、それは可能ですか?
助けてくれてありがとう!
編集:多分これは私が探しているものです。編集についてもコメントしていただければ幸いです。
4: if (input.containsKey(tClazz.getSimpleName())) {
5: JSONArray arr = input.getJSONArray(tClazz.getSimpleName()); //VALID???
6: for (int i = 0; i < arr.size(); i++) {
7: JSONObject obj = arr.getJSONObject(i);
8: T myObj = MyFactory.newObj(tClazz);
//now write all fields using myObj.getAllFields() or something
9: }
10: }
11: return result;
12:}