json_sqlQuery Function
Syntax
Arguments
- jsonCharacter
The JSON object to query.
- sqlStatementCharacter
The SQL statement to execute on the JSON.
- argsInsql::arguments
Default null_value(). An optional SQL::Arguments object that defines any arguments used in the SQL query. This property is required if your SQL query uses arguments.
- columnTypes Character
Default ""
- otherOpsInAny Type
Default null_value()
Description
json_sqlQuery Function allows you to filter a JSON array using a simple SQL query syntax.
Discussion
For example assume you have a JSON string as shown below. The JSON is an array of objects. You can think of this as a table with the following fields: firstname, lastname, city and state.
dim json as c
json = <<%str%
[
{"firstname":"John","lastname":"Smith","city":"Boston","state":"MA"},
{"firstname":"Fred","lastname":"Jones","city":"Cambridge","state":"MA"},
{"firstname":"Tom","lastname":"King","city":"New York","state":"NY"}
]
%str%Assume that you want to apply a filter to this string to retrieve certain records and also to sort the result. The SQL that you would need to express your query might be:
select * from JSONTABLE WHERE state = 'MA' ORDER BY lastname
Or if you would like to use arguments in your SQL, you might express your query as:
select * from JSONTABLE WHERE state = :whatstate ORDER BY lastname
Here is how you can use the json_sqlQuery() function:
dim args as sql::arguments
args.add("whatstate","MA")
dim jsonResult as c
json2 = json_sqlQuery(json,"select * from jsontable where state = :whatstate ORDER BY lastname",args)The resulting string will be:
[
{firstname: 'Fred', lastname: 'Jones', city: 'Cambridge', state: 'MA'},
{firstname: 'John', lastname: 'Smith', city: 'Boston', state: 'MA'}
]See Also