AI智能
改变未来

Map 某 value 为 对象数组,转为 ArrayList 对象集合


Map 某 value 为 对象数组,转为 ArrayList 对象集合

使用 Map 接收前端数据,一些 value 参数为对象数组,调用 map.get() 方法获取数值会报错,因此需要将 map 转成别的类型。

1、问题场景

使用 Map 接收数据,可以看出 key 为 \”addressList\” 的 value 是一个对象数组,怎么获取 value 值呢?

{\"name\":\"Lin\",\"addressList\": [{\"address\":\"海珠区\",\"userId\": \"1\"},{\"address\":\"鼎湖区\",\"userId\": \"2\"}]}

2、 转换步骤

分为四个步骤

  1. Map 转 JSON 字符串
  2. JSON 字符串转 JSONObject
  3. JSONObject.get() 方法获取参数值并转为 JSONArray
  4. JSONArray 转 ArrayList 对象集合

具体代码如下:

public List<Address> test(@RequestBody Map<String, Object> map) {//转JSON字符串String json = JSONObject.toJSONString(map);//转JSONObjectJSONObject jsonObject = JSONObject.parseObject(json);//转JSONArrayJSONArray jsonArray =JSONArray.parseArray(jsonObject.getString(\"addressList\"));//转ArrayList对象集合List<Address> addressList = jsonArray.toJavaList(Address.class);return addressList;}

返回结果如下:

[{\"id\": null,\"city\": null,\"address\": \"海珠区\",\"userId\": 1},{\"id\": null,\"city\": null,\"address\": \"鼎湖区\",\"userId\": 2}]
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Map 某 value 为 对象数组,转为 ArrayList 对象集合