Witajcie,
Mam problem z mapowaniem JSON'a do obiektów. Mój problem polega na tym, że json może przyjąć następujące postacie:
{
"success":true,
"inventory":[]
}
lub:
{
"success":true,
"inventory":{
"123": {
"name":"przedmiot"
}
}
}
Zwracany JSON różni się w zależności od parametrów requesta.
Chciałbym mieć możliwość napisania tego tak, że jeżeli nie uda się parsowanie sekcji inventory, reszta została poprawnie przetworzona.
Mój model:
public class Inventory {
private boolean success;
private HashMap<String, Item> inventory;
public static class Item {
private String name;
}
}
I kod, którego używam do pobrania i mapowania JSON'a
Inventory inv = restTemplate.getForObject("http://example.com/inventory?id=123", Inventory.class);
Problem w tym że metoda getForObject zwraca mi wyjątek, kiedy JSON wygląda jak ten 1 i nie dostaję instancji obiektu.
Macie pomysł jak to zrobić? Użyć do tego celu GSON i przepisywać każde pole ręcznie (jest ich troche więcej niż tutaj napisałem)?