public <T> Map<String, List<T>> toObjectMapList(final String json, final Class<T> clazz) {
        return GSON.fromJson(json, TypeToken.getParameterized(Map.class, String.class, TypeToken.getParameterized(List.class, clazz).getType()).getType());
    }
@Test
    public void testToObjectMapList() {
        List<String> listFirst = ImmutableList.of("111", "222");
        List<String> listSecond = ImmutableList.of("333", "555");
        Map<String, List<String>> map = ImmutableMap.of("data1", listFirst, "data2", listSecond);

        String json = "{\"data1\":[\"111\",\"222\"],\"data2\":[\"333\",\"555\"]}";
        Map<String, List<String>> parseMap = GsonUtils.getInstance().toObjectMapList(json, String.class);
        map.forEach((key, value) -> {
            assertTrue(parseMap.containsKey(key));
            assertEquals(value, parseMap.get(key));
        });

        assertNull(GsonUtils.getInstance().toObjectMapList(null, String.class));
    }