JSON a klasa - Spring Boot

0

Cześć.
Pobieram takiego JSONa z zewnętrznego API za pomocą RestTemplate

[
	{
		"table":"A",
		"no":"226/A/NBP/2019",
		"effectiveDate":"2019-11-22",
		"rates":
				[
					{
						"currency":"bat (Tajlandia)",
						"code":"THB",
						"mid":0.1287
					}
				]
	}
]

i nie wiem jak skonstruować klasę, która by go przechowywała (drugi argument do RestTemplate).
Czy wystarczy, że zrobię taką klasę?

class Klasa
{
    String table;
    String no;
    String effectiveDate;
    String rates;
    String currency;
    String code;
    Double mid;

    //Konstruktor gettery i settery
}

No chyba, że to wymaga większego kombinowania. Chodzi mi głównie i to nieszczęsne pole "rates" w JSONie.

2

Nie. Jeśli chcesz mapować automatycznie, to musisz mieć pasujące klasy.

class Klasa
{
    String table;
    String no;
    String effectiveDate;
    List<Rate> rates;
}

class Rate{
    String currency;
    String code;
    Double mid;
}

Przecież widać gołym okiem z tego jsona ze rates to jest lista obiektów.

2
  1. JSON jest lista obiektów, a nie obiektem - musisz mapowac na „List” (a właściwie na List<Klasa>, pogoogluj jaka jest dokładnie wtedy składnia)
  2. Mapujesz listę „rates” na stringa. Nie wiem czy Jackson Ci to przepuści, ale to i tak bez sensu, bo musiałbyś sam to parsowac. Zrób listę, a Jackson sam to opaździerzy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1