【发布时间】:2014-07-03 07:39:07
【问题描述】:
我正在尝试为我的应用程序构建一个 REST api。基础已经完成。但现在我需要一些帮助来搜索不同参数及其操作数。
假设我有一个这样的 JSON 字符串:
{"v00Datvon":"09-07-2014","v00Datbis":"09-07-2014","v00Saicode":{"saiCode":"SO02"}}
这些是我的“合同”域对象的值。
对于UI部分的搜索,您可以为两个日期选择一个操作数(大于或小于或等于)
所有参数(不包括操作数)都是通过 GET 和 Ajax 调用发送的。
Spring MVC 控制器如下所示:
@RequestMapping(value = "/", method = RequestMethod.GET, headers = "Accept=application/json")
public ResponseEntity<String> getContractsFromSearch(@RequestParam String allRequestParams, ModelMap model){
//some stuff
}
我正在寻找技术输入,如何以干净且良好的方式将操作数添加到 JSON 字符串和控制器。我不想破解一些糟糕的代码。 如果您需要更多输入,请发表评论。 谢谢!
更新 1。
GET 请求:
allRequestParams={"v00Datvon":"09-07-2014","v00Datbis":"09-07-2014","v00Saicode":{"saiCode":"SO02"}}
更新 2。
{
"dateFrom": {
"dateFrom": "someDate",
"operand": "less"
},
"dateTo": {
"dateTo": "someDate",
"operand": "greater"
},
"season": {
"season": "someSeason",
"operand": "equals"
}
}
更新 3 反序列化:
public static Contract fromJsonToContract(String json) {
return new JSONDeserializer<Contract>().use(Calendar.class, new CalendarTransformer("dd-MM-yyyy HH:mm")).use(null, Contract.class).deserialize(json);
}
【问题讨论】:
-
您能否向我们展示一个
GET请求的示例? URL 中的参数是什么样的? -
目前我没有将操作数添加到参数中。我不确定以一种好的方式来做到这一点。
-
还有其他建议吗?
-
对日期使用 ISO-8601 编码。
GETURL 看起来找到了。 -
GET Url 工作正常。那不是问题。我需要一些帮助才能将操作数的参数添加到此 Url。以干净和好的方式。可能会有一些标准吗?谢谢
标签: java json spring rest spring-mvc