Java 如何在play framework controller中从单个JsonNode获取不同bean中的值

Java 如何在play framework controller中从单个JsonNode获取不同bean中的值,java,ajax,json,playframework,Java,Ajax,Json,Playframework,我正在使用Java的play框架。我还使用jqueryajax发布我的数据(String表示JsonNode)。我正在控制器类中编写一个动作方法来为这个ajax调用提供服务 我面临的问题是,我用jQueryAjax发送的数据有10个文本字段值。我有3个bean类(即MyClass1,MyClass2,MyClass3),它们共同拥有这10个变量来捕获这些文本字段值。如果我只有一个bean(比如,MyClass1`),其中定义了10个变量,那么我可以编写如下代码: JsonNode json =

我正在使用Java的play框架。我还使用jqueryajax发布我的数据(
String
表示
JsonNode
)。我正在控制器类中编写一个动作方法来为这个ajax调用提供服务

我面临的问题是,我用jQueryAjax发送的数据有10个文本字段值。我有3个bean类(即MyClass1
MyClass2
MyClass3
),它们共同拥有这10个变量来捕获这些文本字段值。如果我只有一个bean(比如,
MyClass1`),其中定义了10个变量,那么我可以编写如下代码:

JsonNode json = request().body().asJson();
MyClass1 obj1 = Json.fromJson(json, MyClass1.class);
并可轻松访问
obj1
中的值

但是我有3个bean,在第一个bean中有3个变量,在第二个bean中有5个变量,在第三个bean中有2个变量。这就产生了一个问题

如何根据需要以正确的方式在
MyClass1 obj1
MyClass2 obj2
MyClass3 obj3
中获取这10个文本字段值。换句话说,如何实现
JsonNode
的拆分。或者类似的方法在所有3个bean中获得适当的值

任何帮助或任何线索都非常感谢。提前谢谢。
怎样才能得到这些呢?

这个问题的答案很简单。我所做的是 我在bean
MyClass1
中添加了以下两行:

public MyClass2 m2;
public MyClass3 m3;
我在控制器的json方法中保留了与之前相同的代码,即:

JsonNode json = request().body().asJson();
MyClass1 obj1 = Json.fromJson(json, MyClass1.class);
在jquery中,我创建了一个复杂的json
var
(注意:请看下面的
data1
):

然后,在进行ajax调用时,只需将
data1
传递为:

$.ajax({
    url: '/myUrl/data1',
    type: 'POST',
    data: JSON.stringify(data1),
    contentType: "application/json",
    ..
    ..
    ..
});

现在在控制器的json方法中,我可以访问
obj1.m2
obj1.m3
,并可以解决我的问题。(无需考虑拆分
JsonNode

我可以想到的一种方法是:我应该进行3个不同的ajax调用,发送适合MyClass1、MyClass2和MyClass3的数据值。但这将是最后一个优先解决方案,因为3个http请求并不比单个http请求好。
$.ajax({
    url: '/myUrl/data1',
    type: 'POST',
    data: JSON.stringify(data1),
    contentType: "application/json",
    ..
    ..
    ..
});