JSON_COUNT_MATCHES
Use the JSON_COUNT_MATCHES script function to return the number of matches of a JSONPath expression in a JSON document.
Syntax
JSON_COUNT_MATCHES (JSON, JSONPath)
Parameters
-
JSON
A string containing a valid JSON document
-
JSONPath
A valid JSONPath expression
Runtime errors
JSON_COUNT_MATCHES will fail with a runtime error on the following conditions:
-
45334
If your JSON document is invalid
-
45342
Syntax Error in JSONPath expression
Examples:
The following example uses the script function to find the number of books in your JSON shopping basket:
:SET &JSON# = '[{"item":"book", "price": 12.99, "title": "Learn Cobol in 24 hrs"},{"item":"CD", "price": 6.99, "title": "Coder Muzak"}, {"item":"book", "price": 7.99, "title": "Coder Muzak"}, {"item":"book", "price": 7.99, "title": "Java is also an island"}]'
:SET &BOOKCOUNT# = JSON_COUNT_MATCHES(&JSON#,'$..[?(@.item=="book")]')
:P 'You have &BOOKCOUNT# books in your basket'
Activation report result
U00020408 You have 0000000000000002 books in your basket
This example uses the script function to check whether your server returned an error when validating a form via REST API:
:SET &JSON# = '[ ]'
! Uncomment the following line to simulate the error case
:SET &JSON# = '[{"error": "isRequired", "field": "username"},{"error": "outOfRange", "field": "age"}]'
:SET &ERRORCOUNT# = JSON_COUNT_MATCHES(&JSON#,'$..error')
:IF &ERRORCOUNT# <> 0
:P 'You have &ERRORCOUNT# mistakes in your form'
:ELSE IF
:P 'Validation successful'
:ENDIF
Activation report result
U00020408 You have 0000000000000002 mistakes in your form
See also: