Summary Examples
CustomFeaturesOverview.json file below demonstrates using custom functions, operators, and Json path functions.
Note
The following JSON files are referenced in JsonQL expressions in Examples.json in example below:
CustomFeaturesOverview.json:
{
"TestData": [ 1, 5, 8, 17, "Test" ],
"CustomBinaryOperator_+-_1": "(TestData[0] +- TestData[2])=$(TestData[0] +- TestData[2])==-9",
"CustomBinaryOperator_+-_2": "(-TestData[0] +- -TestData[2])=$(-TestData[0] +- -TestData[2])==9",
"CustomPrefixOperator_++2": "(++2 TestData[2])=$(++2 TestData[2])==10",
"CustomPostfixOperator_is_even": "(TestData[2] is even)=$(TestData[2] is even)==true",
"CustomFunction_ReverseTextAndAddMarkers_1": "ReverseTextAndAddMarkers(TestData[4])='$(ReverseTextAndAddMarkers(TestData[4]))' == '#tseT#'",
"CustomFunction_ReverseTextAndAddMarkers_2": "'ReverseTextAndAddMarkers(TestData[4], true)=$(ReverseTextAndAddMarkers(TestData[4], true))' == '#tseT#'",
"CustomFunction_ReverseTextAndAddMarkers_3": "ReverseTextAndAddMarkers(TestData[4], false)='$(ReverseTextAndAddMarkers(TestData[4], false))' == 'tseT'",
"CustomFunction_ReverseTextAndAddMarkers_4": "ReverseTextAndAddMarkers(value->TestData[4], addMarkers->true)='$(ReverseTextAndAddMarkers(value->TestData[4], addMarkers->true))' == '#tseT#'",
"CustomFunction_ReverseTextAndAddMarkers_5": "ReverseTextAndAddMarkers(addMarkers->false, value->TestData[4])='$(ReverseTextAndAddMarkers(addMarkers->false, value->TestData[4]))' == 'tseT'",
"CustomSpecialFunction_JsonQLReleaseDate": "JsonQLReleaseDate is '$(JsonQLReleaseDate)'. The type of value of 'JsonQLReleaseDate' function is '$(typeof JsonQLReleaseDate)'.",
"CustomMultipleItemsSelectorExample_SelectEvenIndexes": "$value(Companies.Select(x => x.Employees).Flatten().SelectEvenIndexes(x => x.Id != 100000001).Where(x => x.Salary > 89000))",
"CustomSingleItemSelectorExample_SecondItemSelector": "Second employee name with salary less than 100K is '$(Companies[0].Employees.Second(x => x.Salary < 100000).Name)'=='Michael Brown'"
}
The result (i.e., an instance of JsonQL.Compilation.ICompilationResult) is serialized to a Result.json file below.
Note
For brevity, the serialized result includes only serialized evaluated CustomFeaturesOverview.json and does not include parent JSON files in JsonQL.Compilation.ICompilationResult.CompiledJsonFiles
Click to expand the result in instance of JsonQL.Compilation.ICompilationResult serialized into Result.json
{
"CompiledJsonFiles":[
{
"TextIdentifier": "CustomFeaturesOverview",
"CompiledParsedValue":
{
"TestData": [
1,
5,
8,
17,
"Test"
],
"CustomBinaryOperator_+-_1": "(TestData[0] +- TestData[2])=-9==-9",
"CustomBinaryOperator_+-_2": "(-TestData[0] +- -TestData[2])=9==9",
"CustomPrefixOperator_++2": "(++2 TestData[2])=10==10",
"CustomPostfixOperator_is_even": "(TestData[2] is even)=true==true",
"CustomFunction_ReverseTextAndAddMarkers_1": "ReverseTextAndAddMarkers(TestData[4])='#tseT#' == '#tseT#'",
"CustomFunction_ReverseTextAndAddMarkers_2": "'ReverseTextAndAddMarkers(TestData[4], true)=#tseT#' == '#tseT#'",
"CustomFunction_ReverseTextAndAddMarkers_3": "ReverseTextAndAddMarkers(TestData[4], false)='tseT' == 'tseT'",
"CustomFunction_ReverseTextAndAddMarkers_4": "ReverseTextAndAddMarkers(value->TestData[4], addMarkers->true)='#tseT#' == '#tseT#'",
"CustomFunction_ReverseTextAndAddMarkers_5": "ReverseTextAndAddMarkers(addMarkers->false, value->TestData[4])='tseT' == 'tseT'",
"CustomSpecialFunction_JsonQLReleaseDate": "JsonQLReleaseDate is '2025-06-01 00:00:00.0000000'. The type of value of 'JsonQLReleaseDate' function is 'DateTime'.",
"CustomMultipleItemsSelectorExample_SelectEvenIndexes": [
{
"Id": 100000005,
"Name": "Christopher Garcia",
"Address": {
"Street": "654 Cedar Road",
"City": "Phoenix",
"State": "AZ",
"ZipCode": "85001"
},
"Salary": 111000,
"Age": 29,
"Logins": [
"cgarcia@sherwood.com",
"cgarcia@gmail.com"
]
},
{
"Id": 100000007,
"Name": "David Martinez",
"Address": {
"Street": "147 Birch Street",
"City": "San Antonio",
"State": "TX",
"ZipCode": "78201"
},
"Salary": 95000,
"Age": 46,
"Logins": [
"dmartinez@sherwood.com",
"dmartinez@gmail.com"
]
},
{
"Id": 250150245,
"Name": "Jane Doe",
"Address": {
"Street": "Main St",
"City": "San Jose",
"State": "PA",
"ZipCode": "95101"
},
"Salary": 144186,
"Age": 63
}
],
"CustomSingleItemSelectorExample_SecondItemSelector": "Second employee name with salary less than 100K is 'Michael Brown'=='Michael Brown'"
}
}
],
"CompilationErrors":
{
"$type": "System.Collections.Generic.List`1[[JsonQL.Compilation.ICompilationErrorItem, JsonQL]], System.Private.CoreLib",
"$values": []
}
}