您好,我正在使用swagger为我的RESTful web服务编写文档。想知道有什么方法可以从json文档响应中删除对象的某些属性吗?我的意思是,swagger为我的方法参数对象和响应模型提供了很多属性(例如notes、defaultValue、allowableValue、internalDescription等)。对于我来说不是必需的,并且由于响应的可读性不是很高而为空
对于方法参数:
     "parameters": [
                    {
                        "name": "someName1",
                        "description": null,
                        "notes": null,
                        "paramType": "path",
                        "defaultValue": null,
                        "allowableValues": null,
                        "required": true,
                        "allowMultiple": false,
                        "paramAccess": null,
                        "internalDescription": null,
                        "wrapperName": null,
                        "dataType": "string",
                        "valueTypeInternal": null
                    },
                    {
                        "name": "someName2",
                        "description": null,
                        "notes": null,
                        "paramType": "query",
                        "defaultValue": null,
                        "allowableValues": null,
                        "required": true,
                        "allowMultiple": false,
                        "paramAccess": null,
                        "internalDescription": null,
                        "wrapperName": null,
                        "dataType": "string",
                        "valueTypeInternal": null
                    }
                ],-=============================================================================
对于响应模型类
"SomeResponseClass": {
        "required": false,
        "name": null,
        "id": "SomeResponseClass",
        "properties": {
            "instanceVariable1": {
                "required": false,
                "name": null,
                "id": null,
                "properties": null,
                "allowableValues": null,
                "description": null,
                "notes": null,
                "access": null,
                "default": null,
                "additionalProperties": null,
                "items": null,
                "uniqueItems": false,
                "type": "Date"
            },
            "instanceVariable2": {
                "required": false,
                "name": null,
                "id": null,
                "properties": null,
                "allowableValues": null,
                "description": null,
                "notes": null,
                "access": null,
                "default": null,
                "additionalProperties": null,
                "items": null,
                "uniqueItems": false,
                "type": "double"
            }
         }发布于 2013-05-16 22:40:14
您的JSON映射器未配置为忽略空属性。您可以轻松地解决这个问题,如下所示:
@Provider
@Produces(MediaType.APPLICATION_JSON)
public class JacksonJsonProvider extends JacksonJaxbJsonProvider {
private static ObjectMapper commonMapper = null;
public JacksonJsonProvider() {
    if(commonMapper == null){
        ObjectMapper mapper = new ObjectMapper();
        mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        mapper.setSerializationInclusion(JsonInclude.Include.NON_DEFAULT);
        mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        commonMapper = mapper;
    }
    super.setMapper(commonMapper);
    }
}将此映射器添加到web.xml中的扫描属性中,空值就会消失。
https://stackoverflow.com/questions/16581249
复制相似问题