Я пытаюсь преобразовать сложный объект Java в JSON. Но я не могу этого сделать. Я использую Java generics.Как преобразовать сложный объект Java в JSON
Это общий объект для хранения вывода страницы. Я не размещаю структуру объекта JsonTest. он аналогичен любому нормальному классу java с свойством и сеттером и getter.
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":[{},{},{},{}]}.
Что не так с этим кодом? Как я могу получить желаемый результат? Я хочу работать с общей функцией, так как я хочу написать код один раз для Grid, а затем передать любой объект для отображения в сетке. случай
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));
}
Enter «gson» в вашем браузере строке поиска, нажмите на первых возвращается результат Google, нажмите на «Руководство пользователя», нажмите на «Сериализацию и десериализации общих типов», прочитать решение твоя проблема. –
Где находится класс 'JsonTest'? пожалуйста, опубликуйте его –
Я разместил JsonTest. Могу ли вы это увидеть. –