• 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);
        //转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
        }
    ]
    
    自我控制是最强者的本能-萧伯纳
  • 相关阅读:
    通过注册表设置指定用户启动项的权限
    音频知识学习
    回老家也不忘老本......
    探索DOMNode
    表单填写示例(通过JavaScript访问DOM)
    最近的一些感悟
    C#和Java中的Substring()
    验证ASP.NET页生命周期时间的触发顺序
    解析c语言背后的汇编代码
    oracle nvl()函数在使用中出现的问题
  • 原文地址:https://www.cnblogs.com/CF1314/p/14708415.html
Copyright © 2020-2023  润新知