fix from dubbo:master, 2.5.7 : GenericJSONConverter主要是用在日志部分输出，所以当我们输出locale对象时就发生stack溢出。
```
java.lang.StackOverflowError
	at com.alibaba.dubbo.common.json.JSONWriter.valueString(JSONWriter.java:189)
	at com.alibaba.dubbo.common.json.GenericJSONConverter$7.encode(GenericJSONConverter.java:100)
	at com.alibaba.dubbo.common.json.GenericJSONConverter.writeValue(GenericJSONConverter.java:338)
	at com.alibaba.dubbo.common.json.GenericJSONConverter.writeValue(GenericJSONConverter.java:347)
	at com.alibaba.dubbo.common.json.GenericJSONConverter.writeValue(GenericJSONConverter.java:395)
	at com.alibaba.dubbo.common.json.GenericJSONConverter.writeValue(GenericJSONConverter.java:347)
	at com.alibaba.dubbo.common.json.GenericJSONConverter.writeValue(GenericJSONConverter.java:395)
```
Map<String, String> result = JSON.parse(reader, Map.class);
        Assert.assertEquals("bbb", result.get("aaa"));
    }
    @Test
    @SuppressWarnings("unchecked")
    public void testMapArray() throws Exception {
        Map<String, String> map = new HashMap<String, String>();
        map.put("aaa", "bbb");
        StringWriter writer = new StringWriter();
        JSON.json(new Object[]{map}, writer); 
        String json = writer.getBuffer().toString();
        Assert.assertEquals("[{\"aaa\":\"bbb\"}]", json);
        StringReader reader = new StringReader(json);
        Object[] result = JSON.parse(reader, new Class<?>[]{Map.class});
        Assert.assertEquals(1, result.length);
        Assert.assertEquals("bbb", ((Map<String, String>) result[0]).get("aaa"));
    }
    @Test
    @SuppressWarnings("unchecked")
    public void testLinkedMap() throws Exception {
        LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
        map.put("aaa", "bbb");
        StringWriter writer = new StringWriter();
        JSON.json(map, writer);
        String json = writer.getBuffer().toString();
        Assert.assertEquals("{\"aaa\":\"bbb\"}", json);
        StringReader reader = new StringReader(json);
        LinkedHashMap<String, String> result = JSON.parse(reader, LinkedHashMap.class);
        Assert.assertEquals("bbb", result.get("aaa"));
    }