# Arithmetic operations in JSON elements

Some basic arithmetic operations can be applied to the JSON elements.

The following table shows arithmetic operators. a and b can be either a constant or a JPath construct. Basic selection, query, arithmetic, and functions are JPath constructs.
Table 1. Arithmetic operators
Operator Description
a - b Subtract
a * b Multiply
a / b Divide
New in V2 a % b Modulo

The following table shows examples of the arithmetic operations that you can apply to JSON elements.

Table 2. Arithmetic examples
Example Description State Expression Result
Addition Basic addition `{ "attr1": 1, "attr2": 4 }` `/attr1 + /attr2` `5`
Subtraction Basic subtraction `{ "attr1": 1, "attr2": 4 }` `/attr1 - /attr2` `-3`
Multiplication Basic multiplication `{ "attr1": 2, "attr2": 4 }` `/attr1 * /attr2` `8`
Division Basic division `{ "attr1": 12, "attr2": 4 }` `/attr1 / /attr2` `3`
New in V2 Modulo Basic modulo `{ "attr1": 10, "attr2": 4 }` `/attr1 % /attr2` `2`
Parentheses Arithmetic that uses parentheses. `{ "attr1": 4, "attr2": 2 }` `(/attr1 - /attr2) * (/attr1 + /attr2)` `12`
Arithmetic as Array Index Uses arithmetic to compute an array index. ```{ "attr1": 4, "attr2": 2, "array": [ "value 1", "value 2", "value 3", ] }``` `/array[/attr1 - /attr2]` `"value 3"`
Arithmetic in Query Uses arithmetic as part of a query. ```{ "attr1": 4, "attr2": 2, "array": [ { "id": 1, "name": "Object 1" }, { "id": 2, "name": "Object 2" }, { "id": 3, "name": "Object 3" } ] }``` `/array[@id != (/attr1 - /attr2)]` ```[ { "id": 1, "name": "Object 1" }, { "id": 3, "name": "Object 3" } ]```