\ is not escaped in API response with another \
But it should be as JSON spec suggests:
http://www.json.org/
http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf
Not escaping backslash means that Zabbix would returns invalid JSON object.
How to reproduce
1. Put a backslash inside a trigger's description in Zabbix somewhere. To make it more meanful, it could be a Windows performance counter's description:
\?????????? ????(_Total)\% ?????????? ????? - ??? ?? ????? ???????, ????? ??????? ???? ??????? ?? ??????? ????? ?????????? ???????????.
2. Now grab triggers with API:
{ "jsonrpc": "2.0", "method": "trigger.get", "params": { "output": "extend", "filter": {"triggerid":13096} }, "auth": "ab092dc5a9436b548db72cec71287eae", "id": 1 }
you will get an object:
{ "jsonrpc": "2.0", "result": [ { "triggerid": "13096", "expression": "({880099}>80)and({880100}=0)", "description": "[PERF.HDD] ??????? ???? ??????? ?????? ????????: {ITEM.LASTVALUE}%", "url": "", "status": "0", "value": "0", "priority": "3", "lastchange": "0", "comments": "\?????????? ????(_Total)\% ?????????? ????? - ??? ?? ????? ???????, ????? ??????? ???? ??????? ?? ??????? ????? ?????????? ???????????.", "error": "", "templateid": "0", "type": "0", "state": "0", "flags": "0" } ], "id": 1 }
That is not a valid JSON object because \ is not escaped with another backslash inside the string comments . Can be double checked by pasting it to https://jsonformatter.curiousconcept.com
Checked on 2.4.2 and 3.0 alpha5