Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java将json映射到两个对象_Java_Json_Hibernate_Jersey_Jpa 2.1 - Fatal编程技术网

Java将json映射到两个对象

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

我使用Jersey来提供restapi。 我编写了控制器,它将请求映射到实体:

@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;
}