我有像下面的列表,轉換列表<Item>到JSON
List<Item> EquipmentData = SAPEquipment.getByFilter(filter);
這產品我是從SAP(「com.vaadin.data.util.sqlcontainer.RowItem」)
得到結果我的問題是,我需要將該列表轉換爲Json格式。我一直在閱讀一些例子,使用GSON這樣的嘗試:
Gson gson = new Gson();
gson.toJson(EquipmentData);
也試圖與只有一個項目
gson.toJson(EquipmentData.get(0));
報告的錯誤是以下之一:
java.lang.StackOverflowError
com.google.gson.stream.JsonWriter.string(JsonWriter.java:559)
com.google.gson.stream.JsonWriter.writeDeferredName(JsonWriter.java:402)
com.google.gson.stream.JsonWriter.beginObject(JsonWriter.java:307)
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:214)
com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:208)
com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:145)
com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:99)
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:219)
com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:99)
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:219)
com.google.gson.Gson$FutureTypeAdapter.write(Gson.java:899)
我無法修改該列表,所以我需要一個適當的方式來轉換它。
任何提示,將不勝感激
編輯:添加項類鏈路(vaadin.com/api/com/vaadin/data/Item.html)
EDIT2:增加全堆棧跟蹤/
顯示'Item'類,請 –
您可以在此處看到Item Class:https://vaadin.com/api/com/vaadin/data/Item.html –
當您有Gson認爲對象包含時,通常會出現Stackoverflow本身,所以既然我不知道你的Item對象是什麼樣子,很難說 –