首页 > 编程语言 > 详细

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

时间:2021-04-27 14:27:57      阅读:23      评论:0      收藏:0      [点我收藏+]

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);
    //转JSONObject
    JSONObject jsonObject = JSONObject.parseObject(json);
    //转JSONArray
    JSONArray 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
    }
]

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

原文:https://www.cnblogs.com/CF1314/p/14708415.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!