当前位置: 首页 > 知识库问答 >
问题:

REST 查询字符串参数

范福
2023-03-14

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

{"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”:〔{“field”:“prodCode”,“operator”:“eq”,“value”:“Z30”}〕}=〔〕}

共有1个答案

邵华皓
2023-03-14

这是一个查询参数,因此您必须使用< code>key来获取它,该键的值为< code>{"take":75," skip":0," page":1," pageSize":75," filter":{"logic":"and "," filters": [{"field":"prodCode "," operator":"eq "," value ":" Z20 " } }:。因此,使用< code >键,将上述内容存储在< code >字符串中,然后解析为< code>JSON(这里我使用的是< code>org.json)。您可以根据需要提取任何< code >键/。您可以使用代码片段:-

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
 类似资料:
  • 问题内容: 从格式如下的URL查询字符串中获取参数的“较少代码”方法是什么? www.mysite.com/category/subcategory?myqueryhash 输出应为: 我知道这种方法: 问题答案: 包含您要查找的数据。 文件资料 **php.net:$** _SERVER-手册

  • 问题内容: 从Java脚本的路径中删除查询字符串的简便方法是什么?我已经看到了使用window.location.search的Jquery插件。我不能这样做:在我的情况下,URL是从AJAX设置的变量。 问题答案: 一个简单的方法是: 对于那些还希望在不存在querystring的情况下删除哈希(不是原始问题的一部分)的人,需要做更多的工作: 编辑 @caub(最初为@crl)建议了一个更简单的

  • 问题内容: 说我有一个网址 并且我有一个用户输入的查询,例如: 随机词银行 我希望结果是正确编码的URL: 实现此目标的最佳方法是什么?我尝试创建URI / URL对象,但没有一个是正确的。 问题答案: 应该是要走的路。你只需要记住只对单个查询字符串参数名称和/或值进行编码,而不对整个URL 进行编码,请确保对查询字符串参数分隔符和参数名称-值分隔符都不进行编码。 请注意,查询参数中的空格由+而不

  • 假设我有一个URL 并且我有一个用户输入的查询,例如: 随机字500英镑银行$ 我希望结果是一个正确编码的URL: 实现这一点的最佳方法是什么?我尝试了并创建URI/URL对象,但结果都不是很对。

  • 问题内容: 我有一个网址 并且我有一个用户输入的查询,例如: 我希望结果是正确编码的URL: 实现此目标的最佳方法是什么?我尝试创建URI / URL对象,但是没有一个是正确的。 问题答案: 可以使用 。您只需要记住只对单个查询字符串参数名称和/或值进行编码,而不对整个URL 进行编码,请确保对查询字符串参数分隔符&和参数名称-值分隔符都不进行编码=。 请注意,查询参数中的空格由而不是表示,这是合

  • 问题内容: 我正在努力在路由中传递和读取多个查询字符串参数。 这是搜索页面: 这是JobOffersController: 读取$ routeParams根本不起作用。如果我将“ developer”作为关键字,将“ New York”作为位置,则$ routeParam对象如下所示: 有人可以告诉我我在做什么错吗?提前致谢。 PS这可能是由于错误配置的路由吗?当我通过该函数导航时,它会将URL编