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: