feilong 3.0.10 发布了,让 Java 开发更简便的工具库

2020年09月24日

feilong 3.0.10 发布了,feilong 是一个让Java开发更简便的工具库。

  1. 让你从大量重复的底层代码中脱身,提高开发效率;
  2. 让你的代码更简炼易写易读易于维护;

文档地址: http://feilong-core.mydoc.io/

单元测试数 增加至 2259 个, 单元测试覆盖率 增加至 91% ,javadoc 比率 83%

本次升级共有 3 处变更, 具体参见 3.0.10 milestone

🍖 feilong-json

#300 ✨ OrPropertyFilter.OrPropertyFilter(PropertyFilter filter1, PropertyFilter filter2)改造成支持动态参数 [enhancement]
#299 ✨ java 转json 支持可以设置过滤某些有业务逻辑的属性 [enhancement]

比如

{
        "orderInfoList":         [
                        {
                "chargeDetials": "24121",
                "discountDetials": {"discountInfo":                 {
                    "discountAmt": "0",
                    "discountCode": "COD"
                }}
            },
                        {
                "chargeDetials": "6666",
                "discountDetials": {"discountInfo":                 {
                    "discountAmt": "8888",
                    "discountCode": "alipay"
                }}
            }
        ],
        "ssd": null
}

如果 discountDetials 里面的discountInfo 对象 discountAmt 属性是 "0" , 那么整个discountDetials 不输出

期望结果:

 {
        "orderInfoList":         [
                        {
                "chargeDetials": "24121"
            },
                        {
                "chargeDetials": "6666",
                "discountDetials": {"discountInfo":                 {
                    "discountAmt": "8888",
                    "discountCode": "alipay"
                }}
            }
        ],
        "ssd": null
    }

你可以这么做:

    @Test
    public void testNew1(){
        JavaToJsonConfig javaToJsonConfig = new JavaToJsonConfig();
        javaToJsonConfig.setPropertyFilter((source,name,value) -> {

            if ("discountDetials".equals(name)){
                DiscountDetials discountDetials = (DiscountDetials) value;

                if ("0".equals(discountDetials.getDiscountInfo().getDiscountAmt())){
                    return true;
                }
            }

            return false;
        });
        String format = JsonUtil.format(ORDER_DETAILS, javaToJsonConfig);
        LOGGER.debug(format);

        assertThat(
                        format,
                        allOf(
                                        containsString("{\"chargeDetials\": \"24121\"}"), //
                                        containsString("\"discountAmt\": \"8888\"")));

    }

 

🍷 feilong-net

#291 ✨ http 工具类, 支持自动去除url 空格, 提高健壮性 [enhancement feilong-net-filetransfer]

展开阅读全文
17 收藏
分享
加载中
最新评论 (6)
您好,请问JSON是自己实现的解析吗?怎么实现的?
2020-09-25 07:18
0
回复
举报
底层不是自己实现, 基于 json-lib 修改和二次封装 , 去掉了不常用的功能
2020-09-25 10:07
0
回复
举报
飞龙大哥,最近搞java8的那个犀牛引擎,虽然不起眼,活了大约7个版本,有时间你看看封装一个出来
2020-09-24 19:04
0
回复
举报
犀牛引擎? 哪里可以看到资料
2020-09-25 10:07
0
回复
举报
JSON的有没有漏洞先??
2020-09-24 16:46
0
回复
举报
暂时没有收到漏洞的反馈
2020-09-25 10:08
0
回复
举报
更多评论
7 评论
17 收藏
分享
返回顶部
顶部