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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM