<Java>Map<String,Object>中解析Object类型数据为数组格式

这篇具有很好参考价值的文章主要介绍了<Java>Map<String,Object>中解析Object类型数据为数组格式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景
前端:入参为字符串和数组类型;通过json字符串传给后台,
后台:后台通过工具解析为Map<String,Object>,然后需要解析出Map里面的数组值做操作;
需求:
入参:
{
“addOrModify”: “add”,
“hrBdName”: “陕西省”,
“hrBdCode”: “1001”,
“hrBuName”: [“宝鸡市”,“咸阳市”,“汉中市”,“渭南市”],
“hrBuCode”: [“100101”,“100102”,“100103”,“100104”]
}
需转化为:List<Map<String,String>>,入库保存;
[{hrBdName=陕西省,hrBdCode=1001,hrBuName=宝鸡市,hrBuCode=100101},
{hrBdName=陕西省,hrBdCode=1001,hrBuName=咸阳市,hrBuCode=100102},
{hrBdName=陕西省,hrBdCode=1001,hrBuName=汉中市,hrBuCode=100103},
{hrBdName=陕西省,hrBdCode=1001,hrBuName=渭南市,hrBuCode=100104}]

Postman入参:
<Java>Map<String,Object>中解析Object类型数据为数组格式,java,ListMap,MyBatis,java
控制层:
转化为Map<String,Object>


    public Result addOrModifyConfig(@RequestBody String param) {
        try {
            Map<String, Object> paramMap = JsonUtils.readValue(param, Map.class);
            xxxListService.addOrModifyConfig(paramMap);
        } catch (Exception e) {
            log.error("XxxListController addOrModifyConfig is error===:" + e.getMessage(), e);
            return Result.failure("更新失败");
        }
        return Result.success().result(null);
    }
    

业务层:
业务逻辑:将入参处理为:List<Map<String,String>>格式:


	public Result addOrModifyConfig(Map<String, Object> paramMap) {
        String addOrModify = String.valueOf(paramMap.get("addOrModify"));
        if(addOrModify.equals("add")){
            paramMap.remove("addOrModify");
            List<Map<String,String>> list = new ArrayList<>();
            String hrBdName = String.valueOf(paramMap.get("hrBdName"));
            String hrBdCode = String.valueOf(paramMap.get("hrBdCode"));
			// hrBuName,hrBuCode 前台传数组,经过工具转为Map<String,Object>,
			// 因为数据比较简单,所以强转为字符串,去除符号[],切割为数组;
            String[] hrBuNameArr = String.valueOf(paramMap.get("hrBuName")).
                              replace("[","").replace("]","").split(",");
            String[] hrBuCodeArr = String.valueOf(paramMap.get("hrBuCode")).
                              replace("[","").replace("]","").split(",");
            if(hrBuNameArr.length == hrBuCodeArr.length && hrBuNameArr.length > 0){
                for (int j = 0; j < hrBuNameArr.length; j++) {
                    Map<String,String> map = new HashMap<>();
                    map.put("bdname",hrBdName);
                    map.put("bdno",hrBdCode);
                    map.put("buname",hrBuNameArr[j]);
                    map.put("buno",hrBuCodeArr[j]);
                    list.add(map);
                }
            }
            // 2.查询本数据库数据;
            List<Map<String,String>> magList = xxxListMapper.selectDepartAll();
            Iterator<Map<String, String>> iterator = list.iterator();
            while (iterator.hasNext()){
                Map<String, String> next = iterator.next();
                String bdname = String.valueOf(next.get("bdname"));
                String bdno = String.valueOf(next.get("bdno"));
                String buname = String.valueOf(next.get("buname"));
                String buno = String.valueOf(next.get("buno"));
                next.put("isEnable","1");
                next.put("dicType","icanDepart");
                Iterator<Map<String, String>> iterator2 = magList.iterator();
                while (iterator2.hasNext()){
                    Map<String, String> next2 = iterator2.next();
                    String bdname2 = String.valueOf(next2.get("bdname"));
                    String bdno2 = String.valueOf(next2.get("bdno"));
                    String buname2 = String.valueOf(next2.get("buname"));
                    String buno2 = String.valueOf(next2.get("buno"));
                    if(bdname.equals(bdname2) && bdno.equals(bdno2) && buname.equals(buname2) && buno.equals(buno2)){
                        iterator.remove();
                    }
                }
            }
            if(list.size() > 0){
                xxxListMapper.addOrModifyConfig(list);
            }
        }

持久层:数据入库代码


	<select id="selectDepartAll" resultType="map">
        SELECT *
        FROM xxx_department_list_dic where 1 = 1
    </select>	

	<!-- 入库保存 -->
    <insert id="addOrModifyConfig" parameterType="java.util.List">
        <foreach collection="list" item="res" index="index" separator=";">
            INSERT IGNORE INTO xxx_department_list_dic
            <foreach collection="res.entrySet()" index="key" separator="," open="(" close=")">
                ${key}
            </foreach>
            VALUES
            <foreach collection="res.entrySet()" item="value" separator="," open="(" close=")">
                #{value}
            </foreach>
        </foreach>
    </insert>
    

最终目的:
<Java>Map<String,Object>中解析Object类型数据为数组格式,java,ListMap,MyBatis,java文章来源地址https://www.toymoban.com/news/detail-614490.html

到了这里,关于<Java>Map<String,Object>中解析Object类型数据为数组格式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java8使用stream流给List<Map<String,Object>>分组(多字段key)

    Java8使用 stream流 给ListMapString,Object根据字段key 分组 一、项目场景: 从已得到的List集合中,根据某一元素(这里指map的key)进行分组,筛选出需要的数据。 如果是SQL的话则使用 group by 直接实现,代码的方式则如下: 使用到stream流的 Collectors.groupingBy() 方法。 二、代码实现 1、首

    2024年02月02日
    浏览(64)
  • Java-WebSocket通信 实现根据查询条件主动实时回传数据给前端&List<Map<String, Object>>转JSON编码器&WebSocket无法注册Bean问题解决方案

    项目背景:Java环境,Get请求根据前端查询条件建立WebSocket连接,每5秒主动实时推送最新查询结果给前端展示。其中也遇到定时器、WebSocket无法注册Bean、No encoder specified for object of class [class java.util.xxx]等问题,相关解决方案也有列举~ Web Sockets 的是在一个单独的持久连接上提

    2024年02月04日
    浏览(50)
  • Java Map 所有的值转为String类型

    可以使用 Java 8 中的  Map.replaceAll()  方法将所有的值转为 String 类型: 上面的代码会将  map  中所有的值都转为 String 类型。 HashMap 是 Java 中使用最广泛的集合类之一,它是一种非常快速的键值对存储方式,可以用于存储和访问大量的数据。下面介绍一些 HashMap 的常用方法:

    2024年02月09日
    浏览(39)
  • JSON转换List<Map<String, Object>>、Map<String, Object>

    废话就不说了 早上10点研究到现在 获取redis的JSON字符串 String getPalletListNew = redisService.getRedis(“getPalletListNew”, abroad + “” + goodsLevel + “” + startPort + “” + destinationPort + “” + maxTon + “” + minTon); 转换MapString,Object public MapString, Object jsonToMap(String json){ MapString, Object map = new

    2024年02月20日
    浏览(50)
  • 使用java8 新特性stream流对List<Map<String, Object>>集合进行遍历、过滤、查询、去重、排序、分组

    对于一个ListMapString, Object类型的数据,可以使用Java 8的新特性stream流来进行遍历、过滤、查询、去重、排序、分组等操作。 遍历: 过滤: 查询: 去重: 排序: 分组:

    2024年02月10日
    浏览(69)
  • 前端js 数据结构:对象 object、数组Array 、Map 的创建、增删改 / 遍历数据

    对象:由一组键值对组成的无序集合,可以通过键来获取对应的值。 每个键值对中的键是唯一的,值可以是任意类型的数据。 对象通常用来表示实体的属性和方法。 1.1.1 对象字面量(最常用): {} 对象字面量:通过在大括号 {} 中定义对象的属性和方法来创建对象。 这是最简单

    2024年01月21日
    浏览(54)
  • List<Map<String, Object>>

    ListMapString, Object 是一个Java数据结构,它是一个列表(List),其中每个元素都是一个Map。在每个Map中,键(key)是字符串(String),值(value)可以是任何对象(Object)。 这种数据结构通常用于存储和处理一组相关的数据记录。例如,可以使用ListMapString, Object 存储数据库查询结果,其

    2023年04月21日
    浏览(45)
  • Java char[]数组转成String类型(char to String)详细介绍

    前言 string toCharArray() 方法将给定的字符串转换为字符序列 Java中字符串转换为字符数组的方法在之前的博客已经介绍了! 今天介绍char[]数组转成String 方法有4种: 使用 String 类的 valueOf() 方法 使用字符串连接 使用 Character 类的 toString() 方法 使用字符包装器类 点击链接Java 字符

    2024年02月02日
    浏览(48)
  • <List<Map<String,Object>>>Map中多个属性转成List Map

    举例: 原始数据 :{001=张三, 002=李四, 003=王五, 004=赵六} 目标数据 : {value=张三, key=001} {value=李四, key=002} {value=王五, key=003} {value=赵六, key=004} 输出: 单独封装工具类案例:

    2024年02月11日
    浏览(44)
  • postman传参之List<Map<String,Object>>后台是map的集合

    1.控制层   2.业务层接口   3.业务层实现类   4.mapper   5.xml   6.运行结果   7.postman传参格式 [{\\\"id\\\":127,\\\"age\\\":12,\\\"name\\\":30},{\\\"id\\\":232,\\\"age\\\":12,\\\"name\\\":30}] 

    2023年04月20日
    浏览(78)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包