繁体   English   中英

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

[英]Trying to Parse an OData $filter into its name-value pairs using Java

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

?让=本田&模型=飞行员和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。 然后,您可以像这样的UriParser.parseFilter(null,EntityType,filterString)那样调用parseFilterMethod。

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

暂无
暂无

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

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