java – Spring不发送JSON响应中的所有字段
发布时间:2020-12-15 03:06:48 所属栏目:Java 来源:网络整理
导读:我的POJO: import java.io.Serializable;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.IdClass;import javax.persistence.Table;import lombok.Data;@Entity@Table(name="user_linked_email")@IdClass(UserLinke
我的POJO:
import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.IdClass; import javax.persistence.Table; import lombok.Data; @Entity @Table(name="user_linked_email") @IdClass(UserLinkedEmailKey.class) @Data public class UserLinkedEmail implements Serializable { /** * serialVersionUID */ private static final long serialVersionUID = 1L; @Id private Integer userId; @Id private String linkedEmail; /** * The Following are appearing in JSON response */ private boolean status; private boolean preferredFlag; } UserLinkedEmailKey类: public class UserLinkedEmailKey implements Serializable { /** * serialVersionUID */ private static final long serialVersionUID = 1L; private Integer userId; private String linkedEmail; } 和我的控制器片段: public org.springframework.http.ResponseEntity<?> getLinkedEmails(@PathVariable(value = "userId") Integer zepoUserId) { try { List<UserLinkedEmail> linkedEmails = userService.getLinkedEmails(zepoUserId); //linkedEmails till this point has all 4 fields return new ResponseEntity<List<UserLinkedEmail>>(linkedEmails,HttpStatus.OK); } catch (Exception e) { // } JSON中的响应如下: [ { "status": false,"preferredFlag": true },{ "status": true,"preferredFlag": false },"preferredFlag": false } ] 尽管Spring-Data JPA从存储库返回整个对象,为什么其他两个字段,即userId和linkedEmail没有显示出来? 解决方法
默认情况下,Spring Data Rest不再将@Id Properties编组为JSON.
这可以使用曝光ID实现 – 请检查Spring Rest 类似的帖子在这里详细解释 – id not marshalled to JSON 我建议使用中间响应类而不是将实体转换为JSON. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |