package com.ynxbd.wx.wxfactory.utils; import com.ynxbd.common.helper.common.ErrorHelper; import lombok.extern.slf4j.Slf4j; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @Slf4j public class MapHelper { /** * map 排序 * @param map map * @return map */ public static Map order(Map map) { Map orderMap = new LinkedHashMap<>(); List> infoIds = new ArrayList<>(map.entrySet()); infoIds.sort((a, b) -> ((Object) a.getKey()).toString().compareTo(b.getKey())); for (Map.Entry item : infoIds) { orderMap.put(item.getKey(), item.getValue()); } return orderMap; } // 参数拼接 public static String mapJoin(Map map, boolean keyLower, boolean isUrlEncode) { StringBuilder sb = new StringBuilder(); try { String key; Object value; for (Map.Entry item : map.entrySet()) { key = item.getKey(); if ("".equals(key)) { continue; } key = key.endsWith("_") && key.length() > 1 ? key.substring(0, key.length() - 1) : key; value = item.getValue(); if (value == null) { value = ""; } sb.append(keyLower ? key.toLowerCase() : key).append("=").append(isUrlEncode ? URLEncoder.encode(value.toString(), "utf-8").replace("+", "%20") : value).append("&"); } } catch (UnsupportedEncodingException e) { ErrorHelper.println(e); } String params = sb.toString(); if (params.length() > 1) { return params.substring(0, params.length() - 1); } return sb.toString(); } }