gpt4 book ai didi

java - 尝试使用 Java 将 OData $filter 解析为其名称-值对

转载 作者:行者123 更新时间:2023-11-30 03:11:36 27 4
gpt4 key购买 nike

我正在构建一个服务,它将使用 OData 语法接收其“查询参数”:而不是更熟悉的

?make=本田&model=Pilot&trimline=LX

要求是接受传递的单个 OData 过滤器“$filter”。

?$filter="'make' eq 'Honda' 和 'model' eq 'Pilot' 和 'trimline' eq 'LX'"

无需考虑 SQL 查询映射、JDBC、转换为 JSON 等。这实际上是尝试从此语法中仅获取名称/值对的集合。我正在查看 Olingo 库并看到 FilterExpression 和 UriParser 之类的东西,但这似乎过于复杂。我错过了什么吗?

对于所有情况,$filter 字符串都只有“eq”运算符。

我假设有一种更简单的方法可以做到这一点。我希望 Olingo 库中有一些东西可以让我按照描述获得 $filter 并最终得到一个 HashMap。

谢谢

最佳答案

不幸的是,Olingo 不提供此功能。为了使用 Olingo 解析过滤字符串,您至少需要一个 EdmEntityType。然后你可以像这样调用parseFilterMethod UriParser.parseFilter(null,entityType,filterString)。

如果您只期望“eq”参数,为什么不使用 String.split() 方法在字符串“eq”处进行拆分以获得您需要的段。我在 eq 前后添加了空格,以防止溢出方法将 $filter=Name eq 'Equador' 等有效过滤器分成 4 段而不是 3 段。您甚至可以将 split 方法与正则表达式一起使用,这比我的简单示例更复杂。

关于java - 尝试使用 Java 将 OData $filter 解析为其名称-值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33504657/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com