Java将Map对象按字典序排列,并且封装成URL的工具类

原创 2016年05月30日 10:05:28
/**
     *
     * 方法用途: 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序),并且生成url参数串<br>
     * 实现步骤: <br>
     *
     * @param paraMap   要排序的Map对象
     * @param urlEncode   是否需要URLENCODE
     * @param keyToLower    是否需要将Key转换为全小写
     *            true:key转化成小写,false:不转化
     * @return
     */
    public static String formatParaMap(Map<String, String> paraMap, boolean urlEncode, boolean keyToLower)
    {
        String buff = "";
        Map<String, String> tmpMap = paraMap;
        try
        {
            List<Map.Entry<String, String>> infoIds = new ArrayList<Map.Entry<String, String>>(tmpMap.entrySet());
            // 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)
            Collections.sort(infoIds, new Comparator<Map.Entry<String, String>>()
            {

                @Override
                public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2)
                {
                    return (o1.getKey()).toString().compareTo(o2.getKey());
                }
            });
            // 构造URL 键值对的格式
            StringBuilder buf = new StringBuilder();
            for (Map.Entry<String, String> item : infoIds)
            {
                if (StringUtils.isNotBlank(item.getKey()))
                {
                    String key = item.getKey();
                    String val = item.getValue();
                    if (urlEncode)
                    {
                        val = encode(val, CommonConstant.ENCODING_UTF8);
                    }
                    if (keyToLower)
                    {
                        buf.append(key.toLowerCase() + "=" + val);
                    } else
                    {
                        buf.append(key + "=" + val);
                    }
                    buf.append("&");
                }

            }
            buff = buf.toString();
            if (buff.isEmpty() == false)
            {
                buff = buff.substring(0, buff.length() - 1);
            }
        } catch (Exception e)
        {
            throw new SysException(e.getMessage());
        }
        return buff;
    }

url参数和map之间的转换

/** * 将url参数转换成map * @param param aa=11&bb=22&cc=33 * @return */ public static Map get...
  • mengxianhua
  • mengxianhua
  • 2013年08月14日 11:39
  • 13888

使用HashMap对象传递url参数实用工具类

使用HashMap对象传递url参数实用工具类
  • 5iasp
  • 5iasp
  • 2014年08月13日 23:52
  • 6825

签名加密ascii排序例子

public static String sign(String secret,Map params){ //按参数名asscic码排序 List names=new ...
  • Cheat1173010256
  • Cheat1173010256
  • 2017年07月04日 17:11
  • 367

Json字符串与字典对象的相互转化

Json字符串转对象:     NSString *jsonStringSource = @"{\"name\":\"张三\",\"age\":\"10\"}";     NSData *...
  • JgPFei
  • JgPFei
  • 2016年02月22日 10:23
  • 885

Map直接转换成Url参数串

public static String mapToFormData(Map, String> map, boolean isURLEncoder) throws UnsupportedEncodin...
  • geqxt66303
  • geqxt66303
  • 2015年08月13日 19:50
  • 605

遍历一个对象的属性名称和值到map中,然后进行URL地址的拼接

遍历一个对象的属性名称和值到map中,然后进行URL地址的拼接 先说下需求:要求通过URL进行地址的拼接,URL=(URL地址)?A=2012-8-5&B=bbb&C=ccc,传递给web页面,进...
  • Lucky_bo
  • Lucky_bo
  • 2016年05月18日 19:43
  • 1756

java中对map的字典序排序

java中对map的字典序排序,sha1加密
  • bestcxx
  • bestcxx
  • 2016年04月15日 10:09
  • 9707

【支付宝,微信支付必备】Java实现url参数按照参数名Unicode码从小到大排序(字典序)

/** * * 方法用途: 对所有传入参数按照字段名的 Unicode 码从小到大排序(字典序),并且生成url参数串 * 实现步骤: * * ...
  • dong_18383219470
  • dong_18383219470
  • 2016年12月14日 11:55
  • 10783

ASCII码排序JAVA实现

问题如下: 描述 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。 输入第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一...
  • hongkangwl
  • hongkangwl
  • 2013年10月13日 20:28
  • 11040

java对象转URL 键值对(微信支付,签名需要)

public static String parseURLPair(Object o) throws Exception{ Class c = o.getClass(); Field[] fi...
  • u013499771
  • u013499771
  • 2016年08月30日 11:12
  • 866
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java将Map对象按字典序排列,并且封装成URL的工具类
举报原因:
原因补充:

(最多只允许输入30个字)