0
我有一些Java類像MyClass1
和MyClass2
其狀態保存在JSON對象:JSON到Java的泛型解析對象
"MyClass1":[{"var1":"value1","var2":"value2"},{"var1":"value3","var2":"value4"}]
"MyClass2":{"var11":"value5","var22":"value6"}
現在我想編寫一個通用的方法來解析JSON對象爲Java對象使用net.sf.json
尋求幫助。
讓我們從MyClass1開始 - 我想創建一個包含json中描述的2個對象的List<MyClass1>
。
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行有效嗎? 我的第二個問題是在第8行:在某個時刻,我想創建一個類型爲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:}
這是非常有幫助的,但不是我的情況,我還是謝謝你 – user1414745