Rest 后嵌套Json。但是变空了

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),我的资源类定义为:

我正在尝试发送一个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),我的资源类定义为:

    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;

谢谢当没有人回答我的问题时,我终于明白了自己的意思。我做了和上面一样的事。我会接受你的解决方案。再次感谢!