Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.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
如何将传入的JSON自动绑定到POJO?(播放2.3.7——Java)_Java_Json_Playframework 2.0_Jackson - Fatal编程技术网

如何将传入的JSON自动绑定到POJO?(播放2.3.7——Java)

如何将传入的JSON自动绑定到POJO?(播放2.3.7——Java),java,json,playframework-2.0,jackson,Java,Json,Playframework 2.0,Jackson,这就是我的控制器方法现在的样子: public static Result createGoal() { JsonNode json = request().body().asJson(); ObjectMapper mapper = new ObjectMapper(); return ok(toJson(Goal.create(mapper.convertValue(json, Goal.class)))); } 这是我希望它看起来的样子: public sta

这就是我的控制器方法现在的样子:

public static Result createGoal() {
    JsonNode json = request().body().asJson();
    ObjectMapper mapper = new ObjectMapper();
    return ok(toJson(Goal.create(mapper.convertValue(json, Goal.class))));
  }
这是我希望它看起来的样子:

public static Result createGoal(Goal goal) {
    return ok(toJson(Goal.create(goal)));
}
我猜我的routes文件将从此处更改:

POST       /goals               controllers.Goals.createGoal()
为此:

POST       /goals               controllers.Goals.createGoal(goal: Goal)

但这似乎不起作用,因为我在路由中得到一个“编译错误[未找到:键入目标]”

,您需要在
Goal
类前面加上完整的包名。更多,玩吧!需要知道如何将查询或路径参数绑定到<代码>目标< /代码>类,从而考虑实现<代码>播放.MVC。

<代码>对象映射器< /C>是一个昂贵的类,因此考虑使用窗体绑定:

Form.form(Goal.class).bindFromRequest();

不幸的是,这在Play1.x和Dropwizard中都是隐含的。