[英]Java mapping json to two objects
我使用Jersey提供REST API。 我寫了控制器,將請求映射到實體:
@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}
}
到兩個實體? 第一個實體:用戶(如上所示)和實體reqData:
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會為我做:<
新的JSON:
{
"user":{
"email":"email@email.com",
"name":"xxxx",
"surname":"fffff"
},
"reqData":{
"ip":"1223123"
}
}
映射:(將返回“ email@email.com”)
@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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.