Если JSON равен
{
"items":
[
{
"id":"3680231",
"longTitle":"Graco SnugRide Infant Car Seat - Pippin",
"available":"true"
}
]
}
, то в следующем примере Gson используется для простой десериализации / сериализации в / из той же структуры данных Java в исходном вопросе.
public static void main(String[] args) throws Exception
{
Gson gson = new Gson();
TrusRegWishAddItemEvent thing = gson.fromJson(new FileReader("input.json"), TrusRegWishAddItemEvent.class);
System.out.println(gson.toJson(thing));
}
Есливместо этого JSON должен быть
{"com.gsicommerce.analytics.platform.model.webstore.AnalyticsProduct":
[
{"id":"3680231","longTitle":"Graco SnugRide Infant Car Seat - Pippin","available":"true"}
]
}
, тогда необходимо преобразовать имя элемента JSON "com.gsicommerce.analytics.platform.model.webstore.AnalyticsProduct"
в член Java items
.Для этого Gson предоставляет пару механизмов, самый простой из которых - просто аннотировать атрибут items
в TrusRegWishAddItemEvent
следующим образом.
class TrusRegWishAddItemEvent implements Serializable
{
static final long serialVersionUID = 1L;
@SerializedName("com.gsicommerce.analytics.platform.model.webstore.AnalyticsProduct")
private final List<AnalyticsProduct> items;
...
}
Но без этой @SerializedName
аннотации Gson не делает 'выдает исключение при попытке десериализации, вместо этого он просто создает экземпляр TrusRegWishAddItemEvent
с items
в качестве пустой ссылки.Итак, неясно, что было сделано для создания сообщения об ошибке в исходном вопросе.