繁体   English   中英

REST查询字符串参数

[英]REST Query String Parameter

我从客户端发送了以下查询字符串参数

{"take":75,"skip":0,"page":1,"pageSize":75,"filter":{"logic":"and","filters":
[{"field":"prodCode","operator":"eq","value":"Z20"}]}}:

在REST服务器中,如何接收以上格式并正确分配给每个类别?

更新1

MultivaluedMap params = uriInfo.getQueryParameters();

参数的值是

{_ = [1437904506062],{“ take”:75,“ skip”:0,“ page”:1,“ pageSize”:75,“ filter”:{“ logic”:“ and”,“ filters”:[ { “字段”: “prodCode”, “运算符”: “当量”, “值”: “Z30”}]}} = []}

这是一个查询参数因此必须使用得到它key具有其值作为{"take":75,"skip":0,"page":1,"pageSize":75,"filter":{"logic":"and","filters": [{"field":"prodCode","operator":"eq","value":"Z20"}]}}: 因此,使用该key ,将以上内容存储在String ,然后解析为JSON (我在这里使用org.json )。 您将可以根据需要提取任何key / value 您可以使用代码段:-

String inputValue = @QueryParam(YOUR_KEY); // OR whatever way you get it
        /*
         * This inputValue will actually contain your value :-
         * {"take":75,"skip":0,"page":1,
         * "pageSize":75,"filter":{"logic":"and","filters":
         * [{"field":"prodCode","operator":"eq","value":"Z20"}]}}
         */

        JSONObject inputJSON = new JSONObject(inputValue); 
        //Now getting values from input JSON
        int take = inputJSON.getInt("take");
        int skip = inputJSON.getInt("skip");
        int page = inputJSON.getInt("page");
        int pageSize = inputJSON.getInt("pageSize");
        JSONObject filter = inputJSON.getJSONObject("filter"); // filter is again a JSONObject 
        String logic = filter.getString("logic");
        System.out.println(take + " "+skip + " "+page + " "+pageSize + " "+logic);
        JSONArray filters = filter.getJSONArray("filters"); // filters is a JSONArray

        for(int i = 0; i< filters.length(); i++){  // iterating over JSONArray 
        JSONObject jo = (JSONObject)filters.get(i); 
        String field = jo.getString("field"); 
        String operator = jo.getString("operator"); 
        String value = jo.getString("value"); 
        System.out.println(field + " "+operator + " "+value ); 
}

输出:-

75 0 1 75 and
prodCode eq Z20

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM