json - 如何隐藏一些json作为响应?

标签 json spring spring-mvc spring-data-jpa spring-data-rest

我有一个基于 spring-data-rest 的模块。我收到此响应,例如,@Entity User .

网址:

http://localhost:8080/Product/rest/users

下面的响应(主要是那里有密码):
 {
      "_embedded" : {
        "users" : [ {
          "def" : "dmityushin",
          "delDate" : null,
          "displayDef" : "Митюшин Дмитрий Александрович",
          "email" : "dmitry.mityushin@megafon.ru",
          "naviDate" : "2015-10-21T12:54:08.559+0000",
          "naviUser" : "admin",
          "phone" : null,
          "pwd" : "266810e0707d7aeb8e838308aa248f3ea116e483",
          "_links" : {
            "self" : {
              "href" : "http://localhost:8080/ProductCatalog/rest/2/users/308"
            },
            "user" : {
              "href" : "http://localhost:8080/ProductCatalog/rest/2/users/308"
            },
            "pscUser" : {
              "href" : "http://localhost:8080/ProductCatalog/rest/2/users/308/pscUser"
            },
            "pscBranch" : {
              "href" : "http://localhost:8080/ProductCatalog/rest/2/users/308/pscBranch"
            }
          }
        }, {
          "def" : "grak",
          "delDate" : null,
          "displayDef" : "Григорий Рак",
          "email" : "grigory.rak@MegaFon.ru",
          "naviDate" : "2015-10-23T11:59:19.546+0000",
          "naviUser" : "admin",
          "phone" : null,
          "pwd" : "c7f33616778ba938272eac0ca0a3364bfc17203d",
          "_links" : {
            "self" : {
              "href" : "http://localhost:8080/ProductCatalog/rest/2/users/316"
            },
            "user" : {
              "href" : "http://localhost:8080/ProductCatalog/rest/2/users/316"
            },
            "pscUser" : {
              "href" : "http://localhost:8080/ProductCatalog/rest/2/users/316/pscUser"
            },
            "pscBranch" : {
              "href" : "http://localhost:8080/ProductCatalog/rest/2/users/316/pscBranch"
            }
          }
        }...OTHERS 

我想隐藏密码和其他一些字段。我怎样才能做到这一点?我没有找到足够的信息。虽然看起来应该很简单。

我的实体代码:
@XmlRootElement
@XmlAccessorType(value = XmlAccessType.FIELD)
@Entity
@Table(name = "psc_users")
@NamedQuery(name = "User.findAll", query = "SELECT u FROM User u")
public class User implements Serializable {
    private static final long serialVersionUID = 8885916014620036457L;

    @Id
    private static final String SEQUENCE_NAME = "psc_users_user_id_seq";
    @Id
    @GeneratedValue(...)
    @GenericGenerator(...)
    @Column(name = "USER_ID")
    private Long userId;

    @Column(name = "DEF")
    private String def;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "DEL_DATE")
    private Date delDate;

    @Column(name = "DISPLAY_DEF", length = 60)
    private String displayDef;

    @Column(name = "EMAIL", length = 60)
    private String email;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "NAVI_DATE")
    private Date naviDate;

    @Column(name = "NAVI_USER")
    private String naviUser;

    @Column(name = "PHONE", length = 30)
    private String phone;

    @Column(name = "PWD", length = 40)
    private String pwd;

    //bi-directional many-to-one association to Branch
    @ManyToOne(cascade = CascadeType.MERGE)
    @JoinColumn(name = "BRNC_BRNC_ID", nullable = false)
    private Branch pscBranch;

    ...some other fields

    public User() {
    }

    ...get() methods

}

抱歉我的英语不好,提前感谢(:

最佳答案

要隐藏某些字段,您可以在要隐藏的字段的 getter 上使用 @JsonIgnore,但不要忘记在该字段的 setter 上添加 @JsonSetter

关于json - 如何隐藏一些json作为响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38999942/

相关文章:

json - Node 上的 SOAP 将 json 解析为 xml 错误

java - 如何从不同的文件加载基于 spring-boot 的 REST 应用程序属性?

spring-mvc - @RequestParam 自定义对象

java - Gson反序列化具有递归依赖的复杂对象

json - 如何获取json大括号内的数据? swift

java - Java使用jsonpath从另一个Json创建一个新的Json读取

java - Oracle 池数据源 - 无法找到 Spring NamespaceHandler

java - Spring Boot Jasper 报告空白 PDF

spring-mvc - 使用注释的 Spring MVC CRUD 应用程序

java - Spring-MVC 中的 JSP 渲染 HTML