用一行代码过滤app接口的出参

作者: itcjj | 来源:发表于2016-08-02 00:23 被阅读0次

开发人员都知道:json是一种轻量级的数据交换格式,主要用于传送数据,它的优点在于格式都是压缩的, 占用带宽小,所以后台提供给app端的接口是json格式的数据。但后台查询数据库拿到大量的数据,假如不做任何处理直接抛出,一来就会导致网络传输慢,接口负载大,二来app端人员要面对垃圾数据,加大了取数据的难度,这时我们后台开发人员就会去想一个提升性能又方便app端人员的办法,接下来我就介绍这个方法。该方法纯属个人借鉴前辈思路提炼加工。

Map<Object, Object> obj = (Map<Object, Object>) resultMap.get(ResultCodeConstant.OBJ);//service层返回给controller的结果集
Map<Object, Object> fileRuleMap = new HashMap<Object, Object>();//装要过滤的字段
fileRuleMap.put("id", "orderId");//key对应数据集的字段,而value是给app端的字段

一行代码:

filterResultMap = ExcuteUtil.filterFormResultMap(obj, fileRuleMap); //核心方法

核心方法代码:
/**
* 过滤给app出参字段
* @param data 源数据
* @param filterRuleMap 出参字段
* @return
*/
public static Map<Object, Object> filterFormResultMap(Map<Object, Object> data, Map<Object, Object> filterRuleMap) {
Map<Object, Object> filterMap = new HashMap<Object, Object>();

    //(1)先判断有没有要过滤的字段,没有的话返回源数据
    if (filterRuleMap != null && filterRuleMap.size() > 0) {
        if (data != null && data.size() > 0) {
            //(2)迭代集合取值
            Iterator<Object> it = data.keySet().iterator();
            while (it.hasNext()) {
                String key = StringUtil.trim(it.next());
                Object val = StringUtil.trim(data.get(key));
                if (filterRuleMap.containsKey(key)) {
                    filterMap.put(StringUtil.trim(filterRuleMap.get(key)), val);
                }
            }
        }
    } else {
        filterMap.putAll(data);
    }
    return filterMap;
}

最后将结果转成json格式以流的方式输出:

String rs = JSONObject.fromObject(filterResultMap ).toString();

结语:上述方法只是支持Map格式的转换,如果你觉得不错、有用,下一篇将会介绍list,还有List<Map<Object,Object>>。

相关文章

  • 用一行代码过滤app接口的出参

    开发人员都知道:json是一种轻量级的数据交换格式,主要用于传送数据,它的优点在于格式都是压缩的, 占用带宽小,所...

  • 性能测试计划书

    测试方案: 接口测试 对每个接口进行单元测试,入参可以用假数据模拟,对出参进行断言判断。 功能测试/逻辑测试 主要...

  • TypeScript接口

    属性类型接口 函数类型接口 定义了函数的参数。包括入参和出参。 可索引类型接口 类类型接口

  • zzcase&接口自动化-质&效的探索

    背景 功能用例设计与接口用例设计,是独立存在的,功能用例主要是验证测试页面功能实现,接口用例主要是验证接口入参和出...

  • 使用Java自动生成接口测试用例

    一、需求 接口测试用例中部分测试用例主要是对接口的入参、出参进行测试,入参出参主要和数据类型有关,此部分测试用例可...

  • PHP设计模式-过滤器

    适用性 允许我们使用不同的规则过滤某一组对象 代码示例 /** * 过滤接口 */ interface Filte...

  • angularjs filter 自定义过滤器(带参数)

    angularjs 过滤器代码: app.filter('userRoles', function(){ ret...

  • {C#}单测.接口传参

    要点 传参=复杂类或嵌套类时,必须通过接口,简化代码提高单测速度 传参=基础类型时,可通过虚拟成员,避免接口膨胀 ...

  • thinkphp3.2 后台接收安卓前端传参出问题(取不到参数数

    场景: thinkphp3.2.3 后台接口为非url传参,前端说是用post传参的问题描述:接口取不到参数数据,...

  • java对接口出参进行过滤

    简单说下这个用处:我们在实际代码中经常直接直接dao层 操作实体类。这样得出来的返回结果其实是一个实体类或者说实体...

网友评论

    本文标题:用一行代码过滤app接口的出参

    本文链接:https://www.haomeiwen.com/subject/cljtsttx.html