{"id":3443,"date":"2024-08-08T15:35:01","date_gmt":"2024-08-08T07:35:01","guid":{"rendered":"https:\/\/five.co\/?p=3443"},"modified":"2026-02-25T10:40:54","modified_gmt":"2026-02-25T02:40:54","slug":"odata-filter-queries-explained","status":"publish","type":"post","link":"https:\/\/preview-php85.dzine.org\/five\/blog\/odata-filter-queries-explained\/","title":{"rendered":"OData $filter Queries Explained"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Learn How to Use OData $filter Queries<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">OData is a standard data access protocol that allows clients to query and filter data from APIs using a standardized syntax, such as the <code>$filter<\/code> query option for retrieving specific subsets of data based on defined criteria. In this blog post, we explain how to use OData $filter queries.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s a scenario: you have been asked to build a data view on your company&#8217;s ERP system, such as Microsoft Dynamics or SAP. The ERP system is your data source. The data view is the final output that will be presented to management. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But how do you get the data from inside your ERP into your data view? That&#8217;s where OData, or the Open Data Protocol comes in. OData facilitates seamless communication between a data consumer (the data view) and a data provider (the ERP system) by standardizing how data is queried, filtered, and manipulated over the web.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<div class=\"root-eb-toc-lkdqr wp-block-essential-blocks-table-of-contents\"><div class=\"eb-parent-wrapper eb-parent-eb-toc-lkdqr \"><div class=\"eb-toc-container eb-toc-lkdqr  eb-toc-is-not-sticky eb-toc-not-collapsible eb-toc-initially-not-collapsed eb-toc-scrollToTop style-1 list-style-none\" data-scroll-top=\"false\" data-scroll-top-icon=\"fas fa-angle-up\" data-collapsible=\"false\" data-sticky-hide-mobile=\"false\" data-sticky=\"false\" data-scroll-target=\"scroll_to_toc\" data-copy-link=\"false\" data-editor-type=\"\" data-hide-desktop=\"false\" data-hide-tab=\"false\" data-hide-mobile=\"false\" data-itemcollapsed=\"false\" data-highlight-scroll=\"false\"><div class=\"eb-toc-header\"><h2 class=\"eb-toc-title\">Table of Contents<\/h2><\/div><div class=\"eb-toc-wrapper \" data-headers=\"[{&quot;level&quot;:2,&quot;content&quot;:&quot;Learn How to Use OData $filter Queries&quot;,&quot;text&quot;:&quot;Learn How to Use OData $filter Queries&quot;,&quot;link&quot;:&quot;learn-how-to-use-odata-filter-queries&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;Rapidly Develop Custom Apps on OData&quot;,&quot;text&quot;:&quot;Rapidly Develop Custom Apps on OData&quot;,&quot;link&quot;:&quot;rapidly-develop-custom-apps-on-odata&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;OData $filter: A Simple Scenario&quot;,&quot;text&quot;:&quot;OData $filter: A Simple Scenario&quot;,&quot;link&quot;:&quot;odata-filter-a-simple-scenario&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;1. Basic Filtering: Filtering by a Single Property&quot;,&quot;text&quot;:&quot;1. Basic Filtering: Filtering by a Single Property&quot;,&quot;link&quot;:&quot;1-basic-filtering-filtering-by-a-single-property&quot;},{&quot;level&quot;:4,&quot;content&quot;:&quot;OData Equality Operators&quot;,&quot;text&quot;:&quot;OData Equality Operators&quot;,&quot;link&quot;:&quot;odata-equality-operators&quot;},{&quot;level&quot;:4,&quot;content&quot;:&quot;OData Range Operators&quot;,&quot;text&quot;:&quot;OData Range Operators&quot;,&quot;link&quot;:&quot;odata-range-operators&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;2. Filtering by Multiple Properties: Combining Conditions with and&quot;,&quot;text&quot;:&quot;2. Filtering by Multiple Properties: Combining Conditions with and&quot;,&quot;link&quot;:&quot;2-filtering-by-multiple-properties-combining-conditions-with-and&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;3. Using or Operator: Filtering with Alternative Conditions&quot;,&quot;text&quot;:&quot;3. Using or Operator: Filtering with Alternative Conditions&quot;,&quot;link&quot;:&quot;3-using-or-operator-filtering-with-alternative-conditions&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;4. Using Functions: Filtering with startswith and contains&quot;,&quot;text&quot;:&quot;4. Using Functions: Filtering with startswith and contains&quot;,&quot;link&quot;:&quot;4-using-functions-filtering-with-startswith-and-contains&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;5. Complex Filtering: Combining Multiple Conditions and Functions&quot;,&quot;text&quot;:&quot;5. Complex Filtering: Combining Multiple Conditions and Functions&quot;,&quot;link&quot;:&quot;5-complex-filtering-combining-multiple-conditions-and-functions&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;6. Filtering with Nested Properties: Accessing Nested Structures&quot;,&quot;text&quot;:&quot;6. Filtering with Nested Properties: Accessing Nested Structures&quot;,&quot;link&quot;:&quot;6-filtering-with-nested-properties-accessing-nested-structures&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;FAQ&quot;,&quot;text&quot;:&quot;FAQ&quot;,&quot;link&quot;:&quot;faq&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;What is an OData filter query?&quot;,&quot;text&quot;:&quot;What is an OData filter query?&quot;,&quot;link&quot;:&quot;what-is-an-odata-filter-query&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;How do you write a basic OData filter?&quot;,&quot;text&quot;:&quot;How do you write a basic OData filter?&quot;,&quot;link&quot;:&quot;how-do-you-write-a-basic-odata-filter&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;Can you combine multiple conditions in an OData filter?&quot;,&quot;text&quot;:&quot;Can you combine multiple conditions in an OData filter?&quot;,&quot;link&quot;:&quot;can-you-combine-multiple-conditions-in-an-odata-filter&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;What functions are commonly used in OData filters?&quot;,&quot;text&quot;:&quot;What functions are commonly used in OData filters?&quot;,&quot;link&quot;:&quot;what-functions-are-commonly-used-in-odata-filters&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;Why are OData filter queries important?&quot;,&quot;text&quot;:&quot;Why are OData filter queries important?&quot;,&quot;link&quot;:&quot;why-are-odata-filter-queries-important&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;Summary: OData $filter&quot;,&quot;text&quot;:&quot;Summary: OData $filter&quot;,&quot;link&quot;:&quot;summary-odata-filter&quot;}]\" data-visible=\"[true,true,true,true,true,true]\" data-delete-headers=\"[{&quot;label&quot;:&quot;Learn How to Use OData $filter Queries&quot;,&quot;value&quot;:&quot;learn-how-to-use-odata-filter-queries&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;Rapidly Develop Custom Apps on OData&quot;,&quot;value&quot;:&quot;rapidly-develop-custom-apps-on-odata&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;OData $filter: A Simple Scenario&quot;,&quot;value&quot;:&quot;odata-filter-a-simple-scenario&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;1. Basic Filtering: Filtering by a Single Property&quot;,&quot;value&quot;:&quot;1-basic-filtering-filtering-by-a-single-property&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;OData Equality Operators&quot;,&quot;value&quot;:&quot;odata-equality-operators&quot;,&quot;isDelete&quot;:true},{&quot;label&quot;:&quot;OData Range Operators&quot;,&quot;value&quot;:&quot;odata-range-operators&quot;,&quot;isDelete&quot;:true},{&quot;label&quot;:&quot;2. Filtering by Multiple Properties: Combining Conditions with and&quot;,&quot;value&quot;:&quot;2-filtering-by-multiple-properties-combining-conditions-with-and&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;3. Using or Operator: Filtering with Alternative Conditions&quot;,&quot;value&quot;:&quot;3-using-or-operator-filtering-with-alternative-conditions&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;4. Using Functions: Filtering with startswith and contains&quot;,&quot;value&quot;:&quot;4-using-functions-filtering-with-startswith-and-contains&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;5. Complex Filtering: Combining Multiple Conditions and Functions&quot;,&quot;value&quot;:&quot;5-complex-filtering-combining-multiple-conditions-and-functions&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;6. Filtering with Nested Properties: Accessing Nested Structures&quot;,&quot;value&quot;:&quot;6-filtering-with-nested-properties-accessing-nested-structures&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;FAQ&quot;,&quot;value&quot;:&quot;faq&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;What is an OData filter query?&quot;,&quot;value&quot;:&quot;what-is-an-odata-filter-query&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;How do you write a basic OData filter?&quot;,&quot;value&quot;:&quot;how-do-you-write-a-basic-odata-filter&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;Can you combine multiple conditions in an OData filter?&quot;,&quot;value&quot;:&quot;can-you-combine-multiple-conditions-in-an-odata-filter&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;What functions are commonly used in OData filters?&quot;,&quot;value&quot;:&quot;what-functions-are-commonly-used-in-odata-filters&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;Why are OData filter queries important?&quot;,&quot;value&quot;:&quot;why-are-odata-filter-queries-important&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;Summary: OData $filter&quot;,&quot;value&quot;:&quot;summary-odata-filter&quot;,&quot;isDelete&quot;:false}]\" data-smooth=\"true\" data-top-offset=\"\"><div class=\"eb-toc__list-wrap\"><ul class=\"eb-toc__list\"><li><a href=\"#learn-how-to-use-odata-filter-queries\">Learn How to Use OData $filter Queries<\/a><li><a href=\"#rapidly-develop-custom-apps-on-odata\">Rapidly Develop Custom Apps on OData<\/a><li><a href=\"#odata-filter-a-simple-scenario\">OData $filter: A Simple Scenario<\/a><ul class=\"eb-toc__list\"><li><a href=\"#1-basic-filtering-filtering-by-a-single-property\">1. Basic Filtering: Filtering by a Single Property<\/a><li><a href=\"#2-filtering-by-multiple-properties-combining-conditions-with-and\">2. Filtering by Multiple Properties: Combining Conditions with and<\/a><li><a href=\"#3-using-or-operator-filtering-with-alternative-conditions\">3. Using or Operator: Filtering with Alternative Conditions<\/a><li><a href=\"#4-using-functions-filtering-with-startswith-and-contains\">4. Using Functions: Filtering with startswith and contains<\/a><li><a href=\"#5-complex-filtering-combining-multiple-conditions-and-functions\">5. Complex Filtering: Combining Multiple Conditions and Functions<\/a><li><a href=\"#6-filtering-with-nested-properties-accessing-nested-structures\">6. Filtering with Nested Properties: Accessing Nested Structures<\/a><\/li><\/ul><li><a href=\"#faq\">FAQ<\/a><ul class=\"eb-toc__list\"><li><a href=\"#what-is-an-odata-filter-query\">What is an OData filter query?<\/a><li><a href=\"#how-do-you-write-a-basic-odata-filter\">How do you write a basic OData filter?<\/a><li><a href=\"#can-you-combine-multiple-conditions-in-an-odata-filter\">Can you combine multiple conditions in an OData filter?<\/a><li><a href=\"#what-functions-are-commonly-used-in-odata-filters\">What functions are commonly used in OData filters?<\/a><li><a href=\"#why-are-odata-filter-queries-important\">Why are OData filter queries important?<\/a><\/li><\/ul><li><a href=\"#summary-odata-filter\">Summary: OData $filter<\/a><\/ul><\/div><\/div><\/div><\/div><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column has-background is-layout-flow wp-block-column-is-layout-flow\" style=\"background-color:#f8b92b\">\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Rapidly Develop Custom Apps on OData<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img width=\"1024\" height=\"298\" src=\"https:\/\/preview-php85.dzine.org\/five\/wp-content\/uploads\/2025\/04\/OData-Logo-1024x298.png\" alt=\"\" class=\"wp-image-17068\" style=\"width:189px;height:auto\" srcset=\"https:\/\/preview-php85.dzine.org\/five\/wp-content\/uploads\/2025\/04\/OData-Logo-1024x298.png 1024w, https:\/\/preview-php85.dzine.org\/five\/wp-content\/uploads\/2025\/04\/OData-Logo-300x87.png 300w, https:\/\/preview-php85.dzine.org\/five\/wp-content\/uploads\/2025\/04\/OData-Logo-768x223.png 768w, https:\/\/preview-php85.dzine.org\/five\/wp-content\/uploads\/2025\/04\/OData-Logo.png 1217w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">Is OData the data source of your next web application? <br>Five is the <strong>fastest way to turn an OData data source into a web application. <\/strong><br><br>Create forms, charts, dashboards or PDF reports connected to your OData data source. <br>Add Authentication, Role-Based Access Control or Single Sign-On. <\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-essential-blocks-button  root-eb-button-7fpbq\"><div class=\"eb-parent-wrapper eb-parent-eb-button-7fpbq \"><div class=\"eb-button-wrapper eb-button-alignment eb-button-7fpbq\"><div class=\"eb-button\"><a class=\"eb-button-anchor\" href=\"https:\/\/preview-php85.dzine.org\/five\/code-along\/how-to-develop-an-odata-data-view\/\" target=\"_blank\" rel=\"noopener\"><strong>Follow Our Code-Along Article to Learn More<\/strong><\/a><\/div><\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">OData $filter: A Simple Scenario<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s imagine we have an OData service, such as Dynamics or an SAP ERP, that exposes an <code>Employees<\/code> entity set. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Each employee has the following properties:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>ID<\/code> (integer)<\/li>\n\n\n\n<li><code>Name<\/code> (string)<\/li>\n\n\n\n<li><code>Age<\/code> (integer)<\/li>\n\n\n\n<li><code>Department<\/code> (string)<\/li>\n\n\n\n<li><code>Salary<\/code> (decimal)<\/li>\n\n\n\n<li><code>Location\/City<\/code> (string)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">1. Basic Filtering: Filtering by a Single Property<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s start with basic filtering. We want the OData endpoint to return all employees who are older than 30. What is the OData query that we need to write?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is what our query should look like:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#abb2bf;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282c34\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"GET serviceRoot\/Employees?$filter=Age gt 30\" style=\"color:#abb2bf;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki one-dark-pro\" style=\"background-color: #282c34\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #C678DD\">GET<\/span><span style=\"color: #ABB2BF\"> serviceRoot\/Employees?$<\/span><span style=\"color: #C678DD\">filter<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #ABB2BF\">Age gt <\/span><span style=\"color: #D19A66\">30<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">This simple filter uses OData&#8217;s range operator to test whether a field is greater than a constant value.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Presuming that our ERP only has two employees who are older than 30, here is a sample JSON response:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#abb2bf;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282c34\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"{\n  &quot;value&quot;: [\n    {\n      &quot;ID&quot;: 1,\n      &quot;Name&quot;: &quot;Alice Johnson&quot;,\n      &quot;Age&quot;: 35,\n      &quot;Department&quot;: &quot;Engineering&quot;,\n      &quot;Salary&quot;: 80000,\n      &quot;Location&quot;: {\n        &quot;City&quot;: &quot;New York&quot;\n      }\n    },\n    {\n      &quot;ID&quot;: 2,\n      &quot;Name&quot;: &quot;Bob Smith&quot;,\n      &quot;Age&quot;: 40,\n      &quot;Department&quot;: &quot;HR&quot;,\n      &quot;Salary&quot;: 60000,\n      &quot;Location&quot;: {\n        &quot;City&quot;: &quot;San Francisco&quot;\n      }\n    }\n  ]\n}\" style=\"color:#abb2bf;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki one-dark-pro\" style=\"background-color: #282c34\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ABB2BF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">  <\/span><span style=\"color: #E06C75\">&quot;value&quot;<\/span><span style=\"color: #ABB2BF\">: [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;ID&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">1<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Name&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;Alice Johnson&quot;<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Age&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">35<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Department&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;Engineering&quot;<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Salary&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">80000<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Location&quot;<\/span><span style=\"color: #ABB2BF\">: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">        <\/span><span style=\"color: #E06C75\">&quot;City&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;New York&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">    },<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;ID&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">2<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Name&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;Bob Smith&quot;<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Age&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">40<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Department&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;HR&quot;<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Salary&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">60000<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Location&quot;<\/span><span style=\"color: #ABB2BF\">: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">        <\/span><span style=\"color: #E06C75\">&quot;City&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;San Francisco&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">  ]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Other comparison operators in OData that work with the filtering function are:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">OData Equality Operators<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><code><strong>eq<\/strong><\/code>: Test whether a field is&nbsp;<strong>equal to<\/strong>&nbsp;a constant value<br><code><strong>ne<\/strong><\/code>: Test whether a field is&nbsp;<strong>not equal to<\/strong>&nbsp;a constant value<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">OData Range Operators<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>gt<\/code>: Test whether a field is&nbsp;<strong>greater than<\/strong>&nbsp;a constant value<\/li>\n\n\n\n<li><code>lt<\/code>: Test whether a field is&nbsp;<strong>less than<\/strong>&nbsp;a constant value<\/li>\n\n\n\n<li><code>ge<\/code>: Test whether a field is&nbsp;<strong>greater than or equal to<\/strong>&nbsp;a constant value<\/li>\n\n\n\n<li><code>le<\/code>: Test whether a field is&nbsp;<strong>less than or equal to<\/strong>&nbsp;a constant value<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">2. Filtering by Multiple Properties: Combining Conditions with <code>and<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Next up, let&#8217;s add another condition to our OData filter. This time management would like to know which employees are older than 30 and work in the &#8220;Engineering&#8221; department.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is what our OData query should look like:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#abb2bf;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282c34\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"GET serviceRoot\/Employees?$filter=Age gt 30 and Department eq 'Engineering'\" style=\"color:#abb2bf;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki one-dark-pro\" style=\"background-color: #282c34\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #C678DD\">GET<\/span><span style=\"color: #ABB2BF\"> serviceRoot\/Employees?$<\/span><span style=\"color: #C678DD\">filter<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #ABB2BF\">Age gt <\/span><span style=\"color: #D19A66\">30<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #C678DD\">and<\/span><span style=\"color: #ABB2BF\"> Department eq <\/span><span style=\"color: #98C379\">&#39;Engineering&#39;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">This OData query filters employees based on two conditions: their <code>Age<\/code> must be greater than 30, and their <code>Department<\/code> must be equal to (<code>eq<\/code>) &#8220;Engineering&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In our sample JSON response we now only see one employee, Alice, who matches our criteria.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#abb2bf;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282c34\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"{\n  &quot;value&quot;: [\n    {\n      &quot;ID&quot;: 1,\n      &quot;Name&quot;: &quot;Alice Johnson&quot;,\n      &quot;Age&quot;: 35,\n      &quot;Department&quot;: &quot;Engineering&quot;,\n      &quot;Salary&quot;: 80000,\n      &quot;Location&quot;: {\n        &quot;City&quot;: &quot;New York&quot;\n      }\n    }\n  ]\n}\" style=\"color:#abb2bf;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki one-dark-pro\" style=\"background-color: #282c34\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ABB2BF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">  <\/span><span style=\"color: #E06C75\">&quot;value&quot;<\/span><span style=\"color: #ABB2BF\">: [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;ID&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">1<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Name&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;Alice Johnson&quot;<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Age&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">35<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Department&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;Engineering&quot;<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Salary&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">80000<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Location&quot;<\/span><span style=\"color: #ABB2BF\">: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">        <\/span><span style=\"color: #E06C75\">&quot;City&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;New York&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">  ]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">OData&#8217;s supports three <strong>logical operators<\/strong>: are <code>and<\/code>, <code>or <\/code>and <code>not<\/code>. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>and<\/code> evaluates to&nbsp;<code>true<\/code>&nbsp;if both its left and right sub-expressions evaluate to&nbsp;<code>true<\/code> or if both conditions are met. <code>or<\/code> evaluates to&nbsp;<code>true<\/code>&nbsp;if either one of its left or right sub-expressions evaluates to&nbsp;<code>true<\/code>. Last, <code>not<\/code> is a unary operator that evaluates to&nbsp;<code>true<\/code>&nbsp;if its sub-expression evaluates to&nbsp;<code>false<\/code>, and vice-versa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We will take a closer look at the <code>or <\/code>operator next.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Using <code>or<\/code> Operator: Filtering with Alternative Conditions<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Management has another job for you. Now they need an overview of all employees who either work in &#8220;HR&#8221; or have a salary greater than 70,000.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is our Odata $filter query that returns the right response:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#abb2bf;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282c34\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"GET serviceRoot\/Employees?$filter=Department eq 'HR' or Salary gt 70000\" style=\"color:#abb2bf;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki one-dark-pro\" style=\"background-color: #282c34\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #C678DD\">GET<\/span><span style=\"color: #ABB2BF\"> serviceRoot\/Employees?$<\/span><span style=\"color: #C678DD\">filter<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #ABB2BF\">Department eq <\/span><span style=\"color: #98C379\">&#39;HR&#39;<\/span><span style=\"color: #ABB2BF\"> <\/span><span style=\"color: #C678DD\">or<\/span><span style=\"color: #ABB2BF\"> Salary gt <\/span><span style=\"color: #D19A66\">70000<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">The query returns employees who meet either of the two conditions: working in &#8220;HR&#8221; or having a salary greater than 70,000.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The (by now, very familiar), sample JSON response looks like this. Bob works in HR, but has a salary of less than 70,000. Alice, on the other hand, works in Engineering, but her salary is above 70,000. With the <code>or <\/code>operator only one of our conditions has to evaluate to <code>true<\/code>.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#abb2bf;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282c34\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"{\n  &quot;value&quot;: [\n    {\n      &quot;ID&quot;: 2,\n      &quot;Name&quot;: &quot;Bob Smith&quot;,\n      &quot;Age&quot;: 40,\n      &quot;Department&quot;: &quot;HR&quot;,\n      &quot;Salary&quot;: 60000,\n      &quot;Location&quot;: {\n        &quot;City&quot;: &quot;San Francisco&quot;\n      }\n    },\n    {\n      &quot;ID&quot;: 1,\n      &quot;Name&quot;: &quot;Alice Johnson&quot;,\n      &quot;Age&quot;: 35,\n      &quot;Department&quot;: &quot;Engineering&quot;,\n      &quot;Salary&quot;: 80000,\n      &quot;Location&quot;: {\n        &quot;City&quot;: &quot;New York&quot;\n      }\n    }\n  ]\n}\" style=\"color:#abb2bf;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki one-dark-pro\" style=\"background-color: #282c34\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ABB2BF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">  <\/span><span style=\"color: #E06C75\">&quot;value&quot;<\/span><span style=\"color: #ABB2BF\">: [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;ID&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">2<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Name&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;Bob Smith&quot;<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Age&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">40<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Department&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;HR&quot;<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Salary&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">60000<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Location&quot;<\/span><span style=\"color: #ABB2BF\">: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">        <\/span><span style=\"color: #E06C75\">&quot;City&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;San Francisco&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">    },<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;ID&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">1<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Name&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;Alice Johnson&quot;<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Age&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">35<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Department&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;Engineering&quot;<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Salary&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">80000<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Location&quot;<\/span><span style=\"color: #ABB2BF\">: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">        <\/span><span style=\"color: #E06C75\">&quot;City&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;New York&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">  ]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">4. Using Functions: Filtering with <code>startswith<\/code> and <code>contains<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s use our OData $filter to get employees whose names start with &#8220;A&#8221; and live in a city that contains &#8220;York&#8221;.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#abb2bf;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282c34\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"GET serviceRoot\/Employees?$filter=startswith(Name, 'A') and contains(Location\/City, 'York')\" style=\"color:#abb2bf;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki one-dark-pro\" style=\"background-color: #282c34\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #C678DD\">GET<\/span><span style=\"color: #ABB2BF\"> serviceRoot\/Employees?$<\/span><span style=\"color: #C678DD\">filter<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #ABB2BF\">startswith(<\/span><span style=\"color: #C678DD\">Name<\/span><span style=\"color: #ABB2BF\">, <\/span><span style=\"color: #98C379\">&#39;A&#39;<\/span><span style=\"color: #ABB2BF\">) <\/span><span style=\"color: #C678DD\">and<\/span><span style=\"color: #ABB2BF\"> contains(<\/span><span style=\"color: #C678DD\">Location<\/span><span style=\"color: #ABB2BF\">\/City, <\/span><span style=\"color: #98C379\">&#39;York&#39;<\/span><span style=\"color: #ABB2BF\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">This query uses the <code>startswith<\/code> function to filter employees whose <code>Name<\/code> starts with &#8220;A&#8221;. It also uses <code>contains<\/code> to filter based on whether the <code>City<\/code> in <code>Location<\/code> contains the string &#8220;York&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Her is what our sample JSON response returns:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#abb2bf;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282c34\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"{\n  &quot;value&quot;: [\n    {\n      &quot;ID&quot;: 1,\n      &quot;Name&quot;: &quot;Alice Johnson&quot;,\n      &quot;Age&quot;: 35,\n      &quot;Department&quot;: &quot;Engineering&quot;,\n      &quot;Salary&quot;: 80000,\n      &quot;Location&quot;: {\n        &quot;City&quot;: &quot;New York&quot;\n      }\n    }\n  ]\n}\" style=\"color:#abb2bf;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki one-dark-pro\" style=\"background-color: #282c34\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ABB2BF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">  <\/span><span style=\"color: #E06C75\">&quot;value&quot;<\/span><span style=\"color: #ABB2BF\">: [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;ID&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">1<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Name&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;Alice Johnson&quot;<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Age&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">35<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Department&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;Engineering&quot;<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Salary&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">80000<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Location&quot;<\/span><span style=\"color: #ABB2BF\">: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">        <\/span><span style=\"color: #E06C75\">&quot;City&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;New York&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">  ]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">5. Complex Filtering: Combining Multiple Conditions and Functions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Reality is rarely as simple as the simple filters described above. So let&#8217;s make things a little bit more complex.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s get employees who are older than 30, work in &#8220;Engineering&#8221;, have a salary greater than 70,000, and live in either &#8220;New York&#8221; or &#8220;San Francisco&#8221;.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#abb2bf;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282c34\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"GET serviceRoot\/Employees?$filter=Age gt 30 and Department eq 'Engineering' and Salary gt 70000 and (Location\/City eq 'New York' or Location\/City eq 'San Francisco')\" style=\"color:#abb2bf;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki one-dark-pro\" style=\"background-color: #282c34\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ABB2BF\">GET serviceRoot\/Employees?$filter=Age gt <\/span><span style=\"color: #D19A66\">30<\/span><span style=\"color: #ABB2BF\"> and Department eq &#39;Engineering&#39; and Salary gt <\/span><span style=\"color: #D19A66\">70000<\/span><span style=\"color: #ABB2BF\"> and (Location\/City eq &#39;New York&#39; or Location\/City eq &#39;San Francisco&#39;)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">This query combines multiple conditions with both <code>and<\/code> and <code>or<\/code> operators, filtering for employees who meet all the specified criteria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is our sample JSON response. Alice fulfills all four conditions:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#abb2bf;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282c34\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"{\n  &quot;value&quot;: [\n    {\n      &quot;ID&quot;: 1,\n      &quot;Name&quot;: &quot;Alice Johnson&quot;,\n      &quot;Age&quot;: 35,\n      &quot;Department&quot;: &quot;Engineering&quot;,\n      &quot;Salary&quot;: 80000,\n      &quot;Location&quot;: {\n        &quot;City&quot;: &quot;New York&quot;\n      }\n    }\n  ]\n}\" style=\"color:#abb2bf;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki one-dark-pro\" style=\"background-color: #282c34\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ABB2BF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">  <\/span><span style=\"color: #E06C75\">&quot;value&quot;<\/span><span style=\"color: #ABB2BF\">: [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;ID&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">1<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Name&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;Alice Johnson&quot;<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Age&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">35<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Department&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;Engineering&quot;<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Salary&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">80000<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Location&quot;<\/span><span style=\"color: #ABB2BF\">: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">        <\/span><span style=\"color: #E06C75\">&quot;City&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;New York&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">  ]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">6. Filtering with Nested Properties: Accessing Nested Structures<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Get employees who live in a city that starts with &#8220;San&#8221; and have a salary less than 70,000.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#abb2bf;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282c34\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"GET serviceRoot\/Employees?$filter=startswith(Location\/City, 'San') and Salary lt 70000\" style=\"color:#abb2bf;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki one-dark-pro\" style=\"background-color: #282c34\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #C678DD\">GET<\/span><span style=\"color: #ABB2BF\"> serviceRoot\/Employees?$<\/span><span style=\"color: #C678DD\">filter<\/span><span style=\"color: #56B6C2\">=<\/span><span style=\"color: #ABB2BF\">startswith(<\/span><span style=\"color: #C678DD\">Location<\/span><span style=\"color: #ABB2BF\">\/City, <\/span><span style=\"color: #98C379\">&#39;San&#39;<\/span><span style=\"color: #ABB2BF\">) <\/span><span style=\"color: #C678DD\">and<\/span><span style=\"color: #ABB2BF\"> Salary lt <\/span><span style=\"color: #D19A66\">70000<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">This query filters based on the nested <code>Location\/City<\/code> property and also checks the <code>Salary<\/code> to ensure it is less than (<code>lt<\/code>) 70,000.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is our sample JSON response:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#abb2bf;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282c34\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"{\n  &quot;value&quot;: [\n    {\n      &quot;ID&quot;: 3,\n      &quot;Name&quot;: &quot;Charlie Brown&quot;,\n      &quot;Age&quot;: 28,\n      &quot;Department&quot;: &quot;Finance&quot;,\n      &quot;Salary&quot;: 65000,\n      &quot;Location&quot;: {\n        &quot;City&quot;: &quot;San Francisco&quot;\n      }\n    }\n  ]\n}\" style=\"color:#abb2bf;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki one-dark-pro\" style=\"background-color: #282c34\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ABB2BF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">  <\/span><span style=\"color: #E06C75\">&quot;value&quot;<\/span><span style=\"color: #ABB2BF\">: [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;ID&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">3<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Name&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;Charlie Brown&quot;<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Age&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">28<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Department&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;Finance&quot;<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Salary&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #D19A66\">65000<\/span><span style=\"color: #ABB2BF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      <\/span><span style=\"color: #E06C75\">&quot;Location&quot;<\/span><span style=\"color: #ABB2BF\">: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">        <\/span><span style=\"color: #E06C75\">&quot;City&quot;<\/span><span style=\"color: #ABB2BF\">: <\/span><span style=\"color: #98C379\">&quot;San Francisco&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">      }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">  ]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ABB2BF\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<ol class=\"rank-math-list \">\n<li id=\"faq-question-1771985858796\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>What is an OData filter query?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>An OData filter query is a way to retrieve only specific records from an API or dataset by applying conditions. It uses the <code>$filter<\/code> parameter to define rules, such as returning items where a field matches a value or falls within a range.<\/p>\n\n<\/div>\n<\/li>\n<li id=\"faq-question-1771985909936\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong><strong>How do you write a basic OData filter?<\/strong><\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>A simple filter typically uses comparison operators like <code>eq<\/code> (equals). For example, filtering records where a name equals a specific value follows the pattern:<br \/><code>AttributeName eq 'Value'<\/code>.<\/p>\n\n<\/div>\n<\/li>\n<li id=\"faq-question-1771985985770\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>Can you combine multiple conditions in an OData filter?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes. You can combine filters using logical operators such as <code>and<\/code> or <code>or<\/code> to refine results. This allows you to apply multiple criteria within the same query.<\/p>\n\n<\/div>\n<\/li>\n<li id=\"faq-question-1771985994514\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong><strong>What functions are commonly used in OData filters?<\/strong><\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>OData supports functions like <code>startswith<\/code>, <code>endswith<\/code>, and <code>contains<\/code> to filter text values. These are useful when you need partial matches instead of exact equality.<\/p>\n\n<\/div>\n<\/li>\n<li id=\"faq-question-1771986003404\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong><strong>Why are OData filter queries important?<\/strong><\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>They improve performance and efficiency by returning only the data you need, reducing payload size and unnecessary API calls. This makes them especially valuable in applications that handle large datasets or frequent requests.<\/p>\n\n<\/div>\n<\/li>\n<\/ol>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Summary: OData $filter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">OData&#8217;s powerful query language makes it a powerful data access technology.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These examples demonstrate how OData\u2019s <code>$filter<\/code> query option can be used to retrieve data based on specific conditions. By progressively building more complex queries, you can gain finer control over the data you retrieve, making OData a powerful tool for querying APIs!<\/p>\n\n\n\n<div style=\"background-color: #001524;\"><hr style=\"height: 5px;\">\n<pre style=\"text-align: center; overflow: hidden; white-space: pre-line;\"><span style=\"color: #f1ebda; background-color: #4588d8; font-size: calc(18px + 0.390625vw);\"><strong>Follow Our OData Code-Along<\/strong><br><span style=\"font-size: 14pt;\">Rapidly build and deploy custom software on OData<\/span><\/span><\/pre>\n<p style=\"text-align: center;\"><a href=\"https:\/\/preview-php85.dzine.org\/five\/code-along\/how-to-develop-an-odata-data-view\/\" target=\"_blank\" rel=\"noopener\"><button style=\"background-color: #f8b92b; border: none; color: black; padding: 20px; text-align: center; text-decoration: none; display: inline-block; font-size: 18px; cursor: pointer; margin: 4px 2px; border-radius: 5px;\"><strong>Start Now<\/strong><\/button><br><\/a><\/p>\n<hr style=\"height: 5px;\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Learn How to Use OData $filter Queries OData is a standard data access protocol that allows clients to query and filter data from APIs using a standardized syntax, such as the $filter query option for retrieving specific subsets of data based on defined criteria. In this blog post, we explain how to use OData $filter [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":3477,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":true,"_eb_attr":"","_uag_custom_page_level_css":"","footnotes":""},"categories":[21],"tags":[],"class_list":["post-3443","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"acf":[],"uagb_featured_image_src":{"full":["https:\/\/preview-php85.dzine.org\/five\/wp-content\/uploads\/2024\/08\/Five.Co-OData-filter-Queries-Explained.jpg",1280,720,false],"thumbnail":["https:\/\/preview-php85.dzine.org\/five\/wp-content\/uploads\/2024\/08\/Five.Co-OData-filter-Queries-Explained-150x150.jpg",150,150,true],"medium":["https:\/\/preview-php85.dzine.org\/five\/wp-content\/uploads\/2024\/08\/Five.Co-OData-filter-Queries-Explained-300x169.jpg",300,169,true],"medium_large":["https:\/\/preview-php85.dzine.org\/five\/wp-content\/uploads\/2024\/08\/Five.Co-OData-filter-Queries-Explained-768x432.jpg",768,432,true],"large":["https:\/\/preview-php85.dzine.org\/five\/wp-content\/uploads\/2024\/08\/Five.Co-OData-filter-Queries-Explained-1024x576.jpg",1024,576,true],"1536x1536":["https:\/\/preview-php85.dzine.org\/five\/wp-content\/uploads\/2024\/08\/Five.Co-OData-filter-Queries-Explained.jpg",1280,720,false],"2048x2048":["https:\/\/preview-php85.dzine.org\/five\/wp-content\/uploads\/2024\/08\/Five.Co-OData-filter-Queries-Explained.jpg",1280,720,false]},"uagb_author_info":{"display_name":"Dominik Keller","author_link":"https:\/\/preview-php85.dzine.org\/five\/author\/f1v5_ed3_my\/"},"uagb_comment_info":0,"uagb_excerpt":"Learn How to Use OData $filter Queries OData is a standard data access protocol that allows clients to query and filter data from APIs using a standardized syntax, such as the $filter query option for retrieving specific subsets of data based on defined criteria. In this blog post, we explain how to use OData $filter&hellip;","_links":{"self":[{"href":"https:\/\/preview-php85.dzine.org\/five\/wp-json\/wp\/v2\/posts\/3443","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/preview-php85.dzine.org\/five\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/preview-php85.dzine.org\/five\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/preview-php85.dzine.org\/five\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/preview-php85.dzine.org\/five\/wp-json\/wp\/v2\/comments?post=3443"}],"version-history":[{"count":0,"href":"https:\/\/preview-php85.dzine.org\/five\/wp-json\/wp\/v2\/posts\/3443\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/preview-php85.dzine.org\/five\/wp-json\/wp\/v2\/media\/3477"}],"wp:attachment":[{"href":"https:\/\/preview-php85.dzine.org\/five\/wp-json\/wp\/v2\/media?parent=3443"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/preview-php85.dzine.org\/five\/wp-json\/wp\/v2\/categories?post=3443"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/preview-php85.dzine.org\/five\/wp-json\/wp\/v2\/tags?post=3443"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}