java - 过滤 JSON 响应 Java Spring - RESTful 服务

标签 java json spring

我试图根据用户是否是内部用户来隐藏 GET 中的某些字段。

这是我的 Controller 的片段:

@RequestMapping(value = "rules", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public StandardJSON list(@ActiveUser ActiveUserId userId)
{
    StandardJSON sj = new StandardJSON();
    sj.setErrors(new ArrayList<String>());
    sj.setData(service.listAllRules());
    return sj;
}

上面返回以下 JSON:

{
    "customerProfileId": "",
    "lastModifiedBy": "",
    "location": "",
    ...
}

我可以使用 getIsInternalUser() 方法确定用户是否是内部用户。

如果用户是外部用户,我将如何过滤 json 项之一?

最佳答案

如果你可以使用Genson - Java and Scala to JSON conversion library那么就可以这样做。它将从 Bar 类中排除“foo”字段。

Genson genson = new Genson.Builder().exclude("foo", Bar.class).create();
genson.serialize(yourObject);

关于java - 过滤 JSON 响应 Java Spring - RESTful 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31117436/

相关文章:

java - JD2XX Java FTDI 库 - 我可以从哪里获取它?

java - 导入 org.springframework.data 无法在 gradle 中解析

jquery - 如何使用 JQuery 发布 JSON 数据?

javascript - 从 Github pull json 数据时出现 TypeError

java - 如何拥有可最小化的子面板?

java - 接收整数序列的服务器

json - jq 合并两个 json 文件并在合并文件中为每个文件创建一个键作为文件名

java - Spring : java. lang.NoSuchMethodError : javax. persistence.Table.indexes()[Ljavax/persistence/Index;

java - Java 中的一些方法或现有设计模式可防止因参数检查而出现大量 if/else 条件

java - 为什么转储中有这么多 SessionFactoryImpl 对象?