Spring Rest:更改JSON响应模板

时间:2016-06-22 12:47:15

标签: json spring spring-data-rest

这里相当新的Spring开发者..

我在过去几天一直在使用Spring,并设法使用JPA和Spring Rest创建一个简单的CRUD API。现在,我希望能够灵活地更改返回的JSON的组成方式。

例如,我有以下简单的实体:

Table Name: Category

 - category_id
 - category_name

GET请求返回以下JSON:

{
    categoryName: "Category 1",
    _links: {
        self: {
            href: "http://localhost:8080/faqsCategories/1"
        },
        faqsCategory: {
            href: "http://localhost:8080/faqsCategories/1"
        },
        faqsContent: {
            href: "http://localhost:8080/faqsCategories/1/faqsContent"
        }
    }
}

现在我要删除_links部分并添加其他内容..

春天有可能吗?

FaqsCategory(实体)

@Entity
@Table(name = "faqs_category")
public class FaqsCategory {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long categoryId;

  private String categoryName;

  @OneToMany(targetEntity = FaqsContent.class, mappedBy = "faqsCategory")
  private Set<FaqsContent> faqsContent = new HashSet<>();

  protected FaqsCategory() {
  }
  .....
}

FaqsCategoryRepository

@RepositoryRestResource
public interface FaqsCategoryRepository extends JpaRepository<FaqsCategory, Long> {

}

1 个答案:

答案 0 :(得分:0)

解决方案是使用@JsonProperty("..."),在您的情况下应该看起来像

@JsonProperty("links")
@OneToMany(targetEntity = FaqsContent.class, mappedBy = "faqsCategory")
private Set<FaqsContent> faqsContent = new HashSet<>();

“links”将是您的json响应中出现的名称而不是“_links”