我有像下面的列表,转换列表<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对象是什么样子,很难说 –