public String toGetParam(final String json) {
        if (StringUtils.isBlank(json)) {
            return EMPTY;
        }
        final Map<String, String> map = toStringMap(json);
        StringBuilder stringBuilder = new StringBuilder();
        map.forEach((k, v) -> {
            try {
                stringBuilder.append(k)
                        .append(EQUAL_SIGN)
                        .append(URLDecoder.decode(v, Constants.DECODE))
                        .append(AND);
            } catch (UnsupportedEncodingException e) {
                LOG.error("decode:{} failed !", v, e);
            }
        });
        final String r = stringBuilder.toString();
        return r.substring(0, r.lastIndexOf(AND));
        
    }
@Test
    public void testToGetParam() {
        Map<String, String> param = ImmutableMap.of("id", "123", "name", "test", "data", "测试");

        String json = GsonUtils.getGson().toJson(param, new TypeToken<Map<String, String>>() {
        }.getType());

        String resultParam = GsonUtils.getInstance().toGetParam(json);
        Map<String, String> resultMap = Arrays.stream(resultParam.split("&"))
                .collect(Collectors.toMap(s -> s.split("=")[0], s -> s.split("=")[1]));

        param.forEach((key, value) -> {
            assertTrue(resultMap.containsKey(key));
            assertEquals(value, resultMap.get(key));
        });

        assertEquals("", GsonUtils.getInstance().toGetParam(""));
    }