fastjson2 icon indicating copy to clipboard operation
fastjson2 copied to clipboard

组合字段名首字母本该是大写的 但转的时候变成小写了

Open Aspire0423 opened this issue 2 years ago • 4 comments

比如我的字段名字是FirstName ,写出的结果是firstName

Aspire0423 avatar Jun 26 '22 16:06 Aspire0423

我想知道该如何配置成类似fastjson 1.x版本那样,全局配置,而又不影响我有些组合字段是小写开头的

Aspire0423 avatar Jun 26 '22 16:06 Aspire0423

目前应用的版本是2.0.8

Aspire0423 avatar Jun 26 '22 16:06 Aspire0423

可以用NameFilter.of这个方法,如下:

     @Test
    public void test() {
        Bean bean = new Bean();
        bean.userId = 101;

        String str = JSON.toJSONString(bean, NameFilter.of(PropertyNamingStrategy.PascalCase));
        assertEquals("{\"UserId\":101}", str);
        JSONObject object = JSON.parseObject(str);
        assertEquals(101, object.get("UserId"));
    }

    public static class Bean {
        public int userId;
    }

wenshao avatar Jun 26 '22 16:06 wenshao

https://github.com/alibaba/fastjson2/blob/main/docs/name_filter_cn.md NameFilter的文档

wenshao avatar Jun 27 '22 01:06 wenshao

@wenshao 从使用便利的角度来说,还是需要有个全局设置的api, 类似configWriterDateFormat,对新项目来说可能没有什么影响,不过对于老项目升级还是很有必要的,不然前端识别不了变化后的字段,或者刚升级过来就马上遇到这个问题,然后痛苦的翻issue找解决方案。

hks2002 avatar Jun 29 '23 07:06 hks2002