### Environment

* Dubbo version: 2.7.4.1
* Operating System version: macOS Catalina Version 10.15.3
* Java version: 1.8.0_231

### Steps to reproduce this issue

1. 通过telnet调用接口如下
方法(Method)
`public String convert7(UserInfoCondition userInfoCondition) {  }`
参数(Parameter)
`public class UserInfoCondition {
    private List<Map<Integer, UserInfo>> userList;
}`
`public class UserInfo {
    private String accountMobile;
    private String userPassword;
}`

invoke UsesrInfoFacade.convert7({"userList":[{"1":{"accountMobile":"15052234567"}}]})
or
invoke UsesrInfoFacade.convert7({"userList":[{1:{"accountMobile":"15052234567"}}]})

提示如下错误(has a problem)
![image](https://user-images.githubusercontent.com/17045745/77892951-ebd50d00-72a5-11ea-95b0-dd59a68a83cc.png)

到底如何书写这个入参呢?(How to write the parameters)


}
    @Test
    public void testInvokeOverriddenMethodBySelect() throws RemotingException {
        
        mockChannel = spy(getChannelInstance());
        given(mockChannel.getAttribute("telnet.service")).willReturn(DemoService.class.getName());
        given(mockChannel.getLocalAddress()).willReturn(NetUtils.toAddress("127.0.0.1:5555"));
        given(mockChannel.getRemoteAddress()).willReturn(NetUtils.toAddress("127.0.0.1:20886"));
        registerProvider(DemoService.class.getName(), new DemoServiceImpl(), DemoService.class);
        String param = "{\"name\":\"Dubbo\",\"age\":8}";
        String result = invoke.telnet(mockChannel, "getPerson(" + param + ")");
        assertTrue(result.contains("Please use the select command to select the method you want to invoke. eg: select 1"));
        result = select.telnet(mockChannel, "1");
        
        assertTrue(result.contains("result: 8") || result.contains("result: \"Dubbo\""));
        result = select.telnet(mockChannel, "2");
        assertTrue(result.contains("result: 8") || result.contains("result: \"Dubbo\""));
    }
    @Test
    public void testInvokeMultiJsonParamMethod() throws RemotingException {
        mockChannel = mock(Channel.class);
        given(mockChannel.getAttribute("telnet.service")).willReturn(null);
        given(mockChannel.getLocalAddress()).willReturn(NetUtils.toAddress("127.0.0.1:5555"));
        given(mockChannel.getRemoteAddress()).willReturn(NetUtils.toAddress("127.0.0.1:20886"));
        registerProvider(DemoService.class.getName(), new DemoServiceImpl(), DemoService.class);
        String param = "{\"name\":\"Dubbo\",\"age\":8},{\"name\":\"Apache\",\"age\":20}";
        String result = invoke.telnet(mockChannel, "getPerson(" + param + ")");
        assertTrue(result.contains("result: 28"));
    }
    @Test