alibaba / fastjson2

🚄 FASTJSON2 is a Java JSON library with excellent performance.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

json字符串反序列化为jsonobject或者map时,snake_case可以转为驼峰吗?

wolf92 opened this issue · comments

通过JSON.parseObject() 将字符串转为jsonobject的时候,可以同时将json中的key由下划线蛇形转为驼峰命名方式吗? 不通过自定义对象进行反序列化。

现在就支持的,比如:

String json = "...";
Bean bean = JSON.parseObject(json, Bean.class, JSONReader.Feature.SupportSmartMatch);

关于Feature的介绍 https://github.com/alibaba/fastjson2/wiki/Features_cn

你也可以关注 Annotation注入的方式定制反序列化 https://github.com/alibaba/fastjson2/wiki/mixin_cn

        JSONObject jsonObject = JSON.parseObject("{\"items\":[{\"item_id\":101}]}");

        jsonObject.nameFilter(
                (object, name, value) -> NamingStrategy.snakeToCamel(name)
        );

        assertEquals(
                101,
                jsonObject
                        .getJSONArray("items")
                        .getJSONObject(0)
                        .get("itemId")
        );

看下这个是不是你想要的,你可以2.0.3-SNAPSHOT版本验证
https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson2/fastjson2/2.0.3-SNAPSHOT/