Rest - json响应有一个未知字段



我用不同的资源设置了一个rest webservice。

其中一个是客户,可以通过/api/customers

访问

客户类有id、地址、姓名和电子邮件字段,但由于某种原因json响应看起来像这样:

{
"type": "customer",
"address": {
  "city": "Kottes-Purk",
  "country": "Pakistan",
  "street": "Julius-Raab-Straße 008"
},
"email": "hana.lammert@hotmail.com",
"name": "Prof. Dr. David Mikitenko"
}

我不知道为什么json响应中有一个"type"字段。有人能解释一下为什么会在那里吗?

客户类如下所示:

@XmlRootElement
@Entity
@Table(name = "customers")
public class Customer extends Model {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@Column(name = "name")
private String name;
@Column(name = "email")
private String email;
@ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
@JoinColumn(name = "address_id")
private Address address;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "customer")
private List<Booking> bookings;
public Customer() {}
public Customer(String email, Address address, String name) {
    this.email = email;
    this.address = address;
    this.name = name;
}

public int setId() {
    return id;
}
public int getId() {
    return id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public Address getAddress() {
    return address;
}

public void setAddress(Address address) {
    this.address = address;
}

@XmlTransient
public List<Booking> getBookings() {
    return bookings;
}
public void setBookings(List<Booking> bookings) {
    this.bookings = bookings;
}

public static List<Customer> all() {
    return (List<Customer>) Database.all(Customer.class);
}

public static Customer find(int id) {
    return (Customer) Database.find(Customer.class, id);
}

public static boolean exists(int id) {
    return Database.exists(Customer.class, id);
}

public static List<Customer> where(String column, String value) {
    return (List<Customer>) Database.where(Customer.class, column, value);
}
}

CustomerResource类中:

@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Customer> getCustomers(){
    return agencyManager.getCustomers();
}

我在这里错过了什么?谢谢你

模型类:

public abstract class Model implements Serializable {

public void save() {
    EntityManager entityManager = HibernateUtil.getEntityManagerFactory().createEntityManager();
    entityManager.getTransaction().begin();
    entityManager.persist(this);
    entityManager.getTransaction().commit();
    entityManager.close();
}

public void delete() {
    EntityManager entityManager = HibernateUtil.getEntityManagerFactory().createEntityManager();
    entityManager.getTransaction().begin();
    entityManager.remove(entityManager.contains(this) ? this : entityManager.merge(this));
    entityManager.getTransaction().commit();
    entityManager.close();
}
}

Id缺失,因为你的Id设置错误,它应该是

public void setId(int id) {
  this.id = id;
}

类型'"type": "customer",'可能会从Model类添加到JSON中。查看Model类

最新更新