Reputation: 41
I am calling a function that returns a Map. I would like to convert Object to a model.
public List<Item> getProducts(String itemNumber) throws Exception {
MapSqlParameterSource parameters = new MapSqlParameterSource();
params.addValue("flagA", "D");
params.addValue("descA", itemNumber);
Map<String, Object> results = execute(programName, parameters );
List<Item> list = (List<Item>) results.get("#result");
return list;
}
Here is a sample of what it is returning:
[
{
"ITEM#": "123456",
"ITEM_NAME": "ITEM NAME"
}
]
Here is my model (using lombok):
@Data
@Wither
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Item{
String itemNumber;
String itemName;
}
Doing this produces an error;
List<Item> list = (List<Item>) results.get("#result");
System.out.println(list.get(0).getItemNumber());
Upvotes: 0
Views: 381
Reputation: 36
Change the line:
List<Item> list = (List<Item>) results.get("#result");
to
List<Item> list = new ArrayList<Item>(results.values());
A new List is created using the values of the Map, the keys are discarded.
Upvotes: 1