我想將一個複雜的Java對象轉換爲JSON。但我無法這樣做。 我正在使用Java泛型。如何將複雜的Java對象轉換爲JSON
這是存儲頁面輸出的通用對象。我不發佈JsonTest對象結構。它與任何具有屬性和setter以及getter的普通java類都相同。
class ListRow<T>{
private int total;
private int currentRow;
private List<T> test;
public ListRow(int total, int currentRow, List<T> test) {
this.total = total;
this.currentRow = currentRow;
this.test = test;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getCurrentRow() {
return currentRow;
}
public void setCurrentRow(int currentRow) {
this.currentRow = currentRow;
}
public List<T> getTest() {
return test;
}
public void setTest(List<T> test) {
this.test = test;
}
JsonTest test = new JsonTest("naveen", 20, 20000);
JsonTest test2 = new JsonTest("parveen", 20, 20000);
JsonTest test3 = new JsonTest("pawan", 20, 20000);
JsonTest test4 = new JsonTest("anil", 20, 20000);
List<JsonTest> list = new ArrayList<JsonTest>();
list.add(test);
list.add(test2);
list.add(test3);
list.add(test4);
Gson gson = new Gson();
System.out.print(gson.toJson(list));
當我用這個值來運行這個程序,我得到了正確的輸出:
[{"name":"naveen","age":20,"salary":20000.0},{"name":"parveen","age":20,"salary":20000.0},{"name":"pawan","age":20,"salary":20000.0},{"name":"anil","age":20,"salary":20000.0}]
但是,當我寫了下面的代碼來實現Java的通用功能,我沒有得到期望的輸出:
Gson gson = new Gson();
ListRow<JsonTest> dataList = new ListRow<JsonTest>(2, 2, list);
System.out.print(gson.toJson(dataList));
輸出是:
{"total":2,"currentRow":2,"test":[{},{},{},{}]}.
這段代碼有什麼問題?我如何獲得所需的輸出? 我想和通用功能工作,因爲我要爲網格編寫一次代碼,然後通過任何物體在網格中顯示。
Json的測試用例:
public static void main(String[] args) {
JsonTest test = new JsonTest("naveen", 20, 20000);
JsonTest test2 = new JsonTest("parveen", 20, 20000);
JsonTest test3 = new JsonTest("pawan", 20, 20000);
JsonTest test4 = new JsonTest("anil", 20, 20000);
List<JsonTest> list = new ArrayList<JsonTest>();
list.add(test);
list.add(test2);
list.add(test3);
list.add(test4);
Gson gson = new Gson();
System.out.print(gson.toJson(list));
ListRow<JsonTest> dataList = new ListRow<JsonTest>(2, 2, list);
System.out.print(gson.toJson(dataList));
}
在您的瀏覽器搜索欄中輸入「GSON」,點擊第一個結果谷歌的回報,點擊「用戶指南」,點擊「序列化和反序列化泛型類型」,閱讀解決方案你的問題。 –
class JsonTest在哪裏?請發帖 –
我發佈了JsonTest。你可以看看嗎。 –