精益编程框架

开发文档
点击登录,精彩内容等着你

JSONArray增强

系列文档

关联类名: JSONArray.java

Fastjson2对JSONArray类,跟对JSONObject一样,其实已经提供了相当多的方法,但是在使用当中,也往往感觉有点不够用…

一、究竟哪些情形,让我需要扩展JSONArray

为了让你对JSONArray有更多的了解,并先阅读:Fastjson1与Fastjson2的差别,深入简化的分析

  1. 作为传输对象,需要对特定的值做一定的处理,特别针对本系统经常使用的扩展属性props的操作
  2. 数据脱敏的操作,或者减少传输数据的数据量方面,这个是当直接返回实体javabean,做不到的,如黑白名单
  3. 可以理解JSONArray就是JSONObject的数组类型,鉴于JSONObject的扩展的必要性,JSONArray同样逼切

1.数据脱敏处理,添加黑白名单

原理相当于JSONObject的黑白名单处理一样,采用递归方式进行黑白名单过滤

  1. //<Diy>1.白名单过滤
  2. public JSONArray white(String... keys) {
  3. if(keys.length > 0) {
  4. JSONFilter.jsonFilter(this, JSONFilter.White(keys));
  5. }
  6. return this;
  7. }
  8. //<Diy>2.黑名单过滤
  9. public JSONArray black(String... keys) {
  10. if(keys.length > 0) {
  11. JSONFilter.jsonFilter(this, JSONFilter.Black(keys));
  12. }
  13. return this;
  14. }

其核心方法位于JSONFilter中,详情请参考该类。

2.统一新构面方法

跟JSONObject一样,初始化采用static方法

  1. //<Diy>4. 静态构建方法
  2. public static JSONArray builder() {
  3. return new JSONArray();
  4. }