# 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.Operator | Description |
---|---|

a + b |
Add |

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.

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" } ]
``` |