[英]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.