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)
```
@Test
    public void testObject2Json() throws Exception {
        Bean bean = new Bean();
        bean.array = new int[]{1, 3, 4};
        bean.setName("ql");
        String json = JSON.json(bean);
        bean = JSON.parse(json, Bean.class);
        assertEquals(bean.getName(), "ql");
        assertEquals(bean.getDisplayName(), "钱磊");
        assertEquals(bean.bytes.length, DEFAULT_BYTES.length);
        assertEquals(bean.$$, DEFAULT_$$);
        assertEquals("{\"name\":\"ql\",\"array\":[1,3,4]}", JSON.json(bean, new String[]{"name", "array"}));
    }
    @Test
    public void testParse2JSONObject() throws Exception {
        JSONObject jo = (JSONObject) JSON.parse("{name:'qianlei',array:[1,2,3,4,98.123],b1:TRUE,$1:NULL,$2:FALSE,__3:NULL}");
        assertEquals(jo.getString("name"), "qianlei");
        assertEquals(jo.getArray("array").length(), 5);
        assertEquals(jo.get("$2"), Boolean.FALSE);
        assertEquals(jo.get("__3"), null);
        for (int i = 0; i < 10000; i++)
            JSON.parse("{\"name\":\"qianlei\",\"array\":[1,2,3,4,98.123],\"displayName\":\"钱磊\"}");
        long now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++)
            JSON.parse("{\"name\":\"qianlei\",\"array\":[1,2,3,4,98.123],\"displayName\":\"钱磊\"}");
        System.out.println("parse to JSONObject 10000 times in: " + (System.currentTimeMillis() - now));
    }
    @Test
    @SuppressWarnings("unchecked")
    public void testParse2Class() throws Exception {