Rest 后嵌套Json。但是变空了
我正在尝试发送一个POST请求,其形式如下:Rest 后嵌套Json。但是变空了,rest,dropwizard,postman,Rest,Dropwizard,Postman,我正在尝试发送一个POST请求,其形式如下: { "startTime":"2014-12-02T00:00:00.000Z", "endTime":"2014-12-03T00:00:00.000Z", "numRows":200, "object":{ "key":"I am having trouble parsing you", "key2":"value2" } } 在后端(使用dropwizard),我的资源类定义为:
{
"startTime":"2014-12-02T00:00:00.000Z",
"endTime":"2014-12-03T00:00:00.000Z",
"numRows":200,
"object":{
"key":"I am having trouble parsing you",
"key2":"value2"
}
}
在后端(使用dropwizard),我的资源类定义为:
class ResourceExample{
public Response process(SearchQuery q){
//doing something
//here q.object = {} instead of {"key": "I am having trouble parsing you", "key2" : "value2"}
}
}
class SearchQuery{
@NotNull
JSONObject object;
@NotNull
String startTime;
@NotNull
String endTime;
@NotNull
int numRows;
//getters and setters present.
}
现在,当我发布请求时,“object”的值是{}。
我希望它是{“key”:“我在解析您时遇到问题”,“key2”:“value2”}
请帮帮我。我确信我遗漏了一些东西。一些在我脑海中没有点击的东西。我哪里做错了 假设您正在使用dropwizard,我将回答 首先,在我的环境中,该代码得到以下错误
{
message: "Unrecognized field "key" (class org.json.JSONObject), not marked as ignorable"
}
代码如下:
ResourceExample.java
@Path("/sample")
@Produces(MediaType.APPLICATION_JSON)
public class ResourceExample {
@POST
public void process(SearchQuery q) {
...
SearchQuery.java
public class SearchQuery{
private JSONObject object;
private String startTime;
private String endTime;
private int numRows;
//getters and setters present.
...
- private JSONObject object;
+ private Map<String, Object> object;
为了工作,我切换到下一个代码:
SearchQuery.java
public class SearchQuery{
private JSONObject object;
private String startTime;
private String endTime;
private int numRows;
//getters and setters present.
...
- private JSONObject object;
+ private Map<String, Object> object;
谢谢当没有人回答我的问题时,我终于明白了自己的意思。我做了和上面一样的事。我会接受你的解决方案。再次感谢!