后端接口返回时,如何过滤掉不需要的字段

2,092 阅读1分钟

我们在写接口的时候,前端可能并不需要所有字段,而你后端可能是因为复用等等一些原因,调用了一个返回很多字段的接口,那么应该如何处理呢,下面给出解决

一、引入依赖

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.62</version>
        </dependency>
``
二、方法封装

```java
/**
     * 
     * @param object 需要处理的数据
     * @param fields  需要返回给前端的字段
     * @return
     */
    private String filterResult (Object object, String[] fields) {
        PropertyPreFilters propertyPreFilters = new PropertyPreFilters();
        PropertyPreFilters.MySimplePropertyPreFilter include = propertyPreFilters.addFilter();
        include.addIncludes(fields);//include.addExcludes(fields) 或者排除掉一些字段
        return JSONObject.toJSONString(object, include, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);
    }

三、方法调用

		ResponseData responseData = new ResponseData();
        String[] includeAttributes = {"id","customerName","codeText","tradeMoney","saleUserName"};
        responseData.setData(JSONObject.parse(filterResult(data, includeAttributes)));
        return responseData;

这里重新将string解析成object 是为了让springmvc重新处理返回体,不然postman调用返回格式会携带换行符等,不方便我们导入json写接口文档