gpt4 book ai didi

java - [PlayFramework 2.5][Java] JSON post 请求绑定(bind)到表单中

转载 作者:行者123 更新时间:2023-12-01 08:58:23 25 4
gpt4 key购买 nike

我的 Controller 用于 REST 服务,应该接收 JSON:

body {
"text": "string",
"page": 0
}

我根据此创建了类:

@ApiModel(
value="FSearch",
description = "Parameters for user search"

)
public class FSearch {

@ApiModelProperty(
value = "Text , to lookup for",
notes = "Can be empty",
required = false
)
public String text;

@ApiModelProperty(
value = "Page number of search results",
required = true
)
@Constraints.Required
public int page;

}

我的 Controller 出价如下所示:

@BodyParser.Of(BodyParser.Json.class)
public Result search(){
Form<FSearch> searching = formFactory.form(FSearch.class).bindFromRequest();
if (searching .hasErrors()) {
return badRequest(searching .errorsAsJson());
}
//Another not releated code
return ok(Json.toJson(result));
}

现在,当我测试发送这样的数据时:

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ \ "text": "bla", \ "lol": 0 \ }'

所以我发送这个 JSON:

body {
"text": "bla",
"lol": 0
}

注意 lol 而不是 page,但表单仍然绑定(bind),没有任何错误...我应该怎么做才能确保 json 绑定(bind)中的变量名称匹配?

最佳答案

这是非常的记录,但必需注释是essentially not much more than a null-check 。由于 int 永远不会是 null,因此它总是会通过。要么将该字段设置为Integer(可以为null),或者使用基于数字的约束之一(例如Min)来检查其是否有效默认值以外的值(假设有一个数字可以标记为无效,例如负数或其他数字)。

关于java - [PlayFramework 2.5][Java] JSON post 请求绑定(bind)到表单中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41885414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com