Java将json映射到两个对象
我使用Jersey来提供restapi。 我编写了控制器,它将请求映射到实体:Java将json映射到两个对象,java,json,hibernate,jersey,jpa-2.1,Java,Json,Hibernate,Jersey,Jpa 2.1,我使用Jersey来提供restapi。 我编写了控制器,它将请求映射到实体: @POST @Path("register") @Consumes("application/json") @Produces("application/json") public Response UserRegistration(User UserData) { } 它适用于简单的json,如: { "email":"email@email.pl", "name":"Name", "surname":"su
@POST
@Path("register")
@Consumes("application/json")
@Produces("application/json")
public Response UserRegistration(User UserData)
{
}
它适用于简单的json,如:
{
"email":"email@email.pl",
"name":"Name",
"surname":"surname"
}
和实体:
public class User {
public User() {}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id",unique = true)
private int id;
@Column(name = "name")
private String name;
@Column(name = "surname")
private String surname;
@Column(name = "email", unique = true)
private String email;
//getters
// setters
}
如何映射JSON数组,如:
{
"email":"email@email.pl",
"name":"Name",
"surname":"surname"
"reqData":{
"ip":44.44.44.44}
}
到两个世纪?
第一个实体:用户(如上所示)和实体数据:
public class RegistrationData {
public RegistrationData(){};
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true)
private int id;
@Column(name = "ip")
private int ip;
我当然有一对一的关系,但这在这里并不重要(我认为)。
我希望我的问题可以理解。
谢谢你的帮助。我做到了
我不得不修改我的json请求并创建额外的类
它对我很有效。
我以为framewrok会帮我做到:
{
"user":{
"email":"email@email.com",
"name":"xxxx",
"surname":"fffff"
},
"reqData":{
"ip":"1223123"
}
}
@POST
@Path("test")
@Consumes("application/json")
@Produces("application/json")
public String Test(Test Testclass)
{
return Testclass.getUser().getEmail();
}
}
public class Testclass {
public Testclass(){};
// getters
//setters
private User user;
private RegistrationData reqData;
}