将Map <string,object =“”>转换为List <mymodeledclass>

时间:2019-01-31 17:56:02

标签: java spring-boot

我正在调用一个返回Map的函数。我想将Object转换为模型。

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;
}

以下是返回的示例:

[
    {
        "ITEM#": "123456",
        "ITEM_NAME": "ITEM NAME"
    }
]

这是我的模特(使用龙目岛):

@Data
@Wither
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Item{
    String itemNumber;

    String itemName;
}

这样做会产生错误;

List<Item> list = (List<Item>) results.get("#result");
System.out.println(list.get(0).getItemNumber());

1 个答案:

答案 0 :(得分:1)

更改行:

List<Item> list = (List<Item>) results.get("#result");

List<Item> list = new ArrayList<Item>(results.values());

使用Map的值创建一个新列表,然后丢弃键。