繁体   English   中英

如何从 REST api 响应中排除某些字段?

How to exculde some fields from REST api response?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我从 API 得到响应为

Response response=Response.ok(map,MediaType.APPLICATION_JSON_TYPE).build();
return response

但我希望在返回响应时排除某些字段。

地图格式如下:

Map<String,OuterClass> map;

class OuterClass{
   int a;
   int b;
   Map<String,InnerClass> map2;
}

Class InnerClass{
   int c;
   int d;

}

例如,json 响应不应包含来自 InnerClass 的字段“d”。 我怎样才能做到这一点?

2 个回复

为排除属性创建一个Set并使用removeIf

Set<String> excludeProperties=null;
map.entrySet()
        .removeIf(e->excludeProperties.contains(e.getKey()));
return Response.ok(map,MediaType.APPLICATION_JSON_TYPE).build()

你可以 JsonIgnore 属性:

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-core-asl</artifactId>
    <version>1.9.13</version>
    <scope>provided</scope>
</dependency>


Class InnerClass{
   int c;
   @JsonIgnore
   int d;

}

参考: https : //fasterxml.github.io/jackson-core/javadoc/1.9/org/codehaus/jackson/annotate/package-summary.html

1 基于某些条件在json中排除字段

我有一个类的对象列表,我将其作为json呈现给浏览器。 现在,如果不满足某些条件,我想在json响应中排除对象中的某些属性。 因此,列表中的某些对象将存在这些属性,并且该列表的其他对象将不存在这些属性。 我如何实现这一目标? 我是一个春季启动应用程序。 杰克逊正在被使用。 ...

4 从Ruby调用的Redmine REST API忽略了对某些字段的更新

我有一些代码在某一点工作,但不再有效,这强烈暗示redmine配置以某种方式涉及(我不是redmine管理员),但缺少任何错误消息使得很难确定什么是错误的。 这是代码: 运行时,输出为: 到目前为止还不错,除了当我回到GUI并查看此票证时,“注释”部分已正确更新,但自定义字段未 ...

5 忽略来自Rest API Response Java的Null值字段

在我的项目中,我向Rest Advance Client发送Rest Response它只显示具有一些值的字段和忽略(不显示)具有NULL值或空值的字段。 代码的一部分: 响应示例return Response.ok(firstResponse).build(); 高级休息客 ...

7 vSphere REST API-如何在JSON响应中指定字段

我正在尝试通过以下请求将REST API调用中的VM名称返回给Vcenter。 我可以通过从请求中删除“名称”来获取所有字段。 有谁知道如何将响应JSON对象过滤到Vcenter REST API的特定字段? https://开头FQDN / REST /的vCenter / VM / ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM