Динамически игнорировать поля из объекта Java при отправке в формате JSON из Spring MVCJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Динамически игнорировать поля из объекта Java при отправке в формате JSON из Spring MVC

Сообщение Anonymous »


У меня есть такой класс модели для спящего режима

@Entity @Table(name = "пользователь", каталог = "userdb") @JsonIgnoreProperties (ignoreUnknown = true) Пользователь публичного класса реализует java.io.Serializable { частный целочисленный идентификатор пользователя; частная строка userName; частная строка emailId; частная строка EncryptedPwd; частная строка, созданная; частная строка updateBy; @Идентификатор @GeneratedValue(стратегия = ИДЕНТИЧНОСТЬ) @Column(name = «UserId», unique = true, nullable = false) публичное целое число getUserId() { вернуть этот.userId; } общественный недействительный setUserId (Целое число userId) { this.userId = идентификатор пользователя; } @Column(name = «Имя пользователя», длина = 100) публичная строка getUserName() { вернуть это.имя_пользователя; } public void setUserName (String userName) { this.userName = имя пользователя; } @Column(name = «EmailId», значение null = false, длина = 45) публичная строка getEmailId() { вернуть this.emailId; } общественный недействительный setEmailId (String emailId) { this.emailId = emailId; } @Column(name = "EncryptedPwd", длина = 100) публичная строка getEncryptedPwd() { верните this.encryptedPwd; } общественная недействительность setEncryptedPwd (String EncryptedPwd) { this.encryptedPwd = зашифрованныйPwd; } общественный недействительный setCreatedBy (String созданныйBy) { this.createdBy = созданоBy; } @Column(name = "UpdatedBy", длина = 100) публичная строка getUpdatedBy() { верните this.updatedBy; } общественная недействительность setUpdatedBy (String updateBy) { this.updatedBy = updateBy; } } В контроллере Spring MVC, используя DAO, я могу получить объект. и возвращается как объект JSON.

@Controller публичный класс UserController { @Autowired частный UserService userService; @RequestMapping (значение = "/getUser/{userId}", метод = RequestMethod.GET) @ResponseBody public User getUser(@PathVariable Integer userId) выдает исключение { Пользователь пользователя = userService.get(userId); user.setCreatedBy(ноль); user.setUpdatedBy(ноль); вернуть пользователя; } } Часть просмотра выполняется с использованием AngularJS, поэтому JSON будет получен вот так

{ «идентификатор пользователя»: 2, "Имя пользователя": "Джон", "emailId": "john@gmail.com", "encryptedPwd" : "Co7Fwd1fXYk=", «createBy»: ноль, «обновлено»: ноль } Если я не хочу устанавливать зашифрованный пароль, я также задаю для этого поля значение null.

Но я не хочу этого, я не хочу отправлять все поля на сторону клиента. Если я не хочу, чтобы поля «пароль», «обновлено» и «создано» отправлялись, мой результат в формате JSON должен быть таким:

{ «идентификатор пользователя»: 2, "Имя пользователя": "Джон", «emailId»: «john@gmail.com» } Список полей, которые я не хочу отправлять клиенту из другой таблицы базы данных. Таким образом, оно будет меняться в зависимости от того, какой пользователь вошел в систему. Как мне это сделать?

Надеюсь, вы поняли мой вопрос.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»