JsonInput FormatΒΆ
The provided input must be structured as follow:
- Each entry must contain an object with either
fields
and/orgroups
. - Optionally the object can contain
'logical-case' => 'AND'
to make it AND-cased.
The groups
must have array one or more arrays with the structure as
described above (fields
and/or groups
).
The fields array is an associative array where each key is the field-name and the values as follow (all the keys are optional, but at least one must exists):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | {
"simple-values": [
"value1",
"value2"
],
"excluded-values": [
"my value1",
"my value2"
],
"ranges": [
{
"lower": 10,
"upper": 20
}
],
"excluded-ranges": [
{
"lower": 25,
"upper": 30
}
],
"comparisons": [
{
"value": 50,
"operator": ">"
}
],
"pattern-matchers": [
{
"value": "foo",
"type": "STARTS_WITH"
}
]
}
|
The type of pattern-matchers
must either one of the following:
CONTAINS`
STARTS_WITH
ENDS_WITH
NOT_CONTAINS
NOT_STARTS_WITH
NOT_ENDS_WITH
Full example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | {
"logical-case": "AND",
"fields": {
"field1": {
"ranges": [
{
"lower": 10,
"upper": 20
},
{
"lower": 30,
"upper": 40
},
{
"lower": 50,
"upper": 60,
"inclusive-lower": false
},
{
"lower": 70,
"upper": 80,
"inclusive-upper": false
}
]
}
},
"groups": [
{
"logical-case": "AND",
"fields": {
"field1": {
"simple-values": [
"value",
"value2",
"value3",
"value4",
"value5"
]
}
},
"groups": [...]
}
]
}
|
Note
Internally the JsonInput processor uses the same input structure as array
.
The advantage of using the JsonInput processor instead decoding the JSON object yourself is that the JsonInput processor does a linting on the provided input, ensuring the JSON input is valid and will give a more detail message on whats wrong.