Столкнулся с ошибкой «Value should be a JSON object.» при обработке discovery скрипта, который отдавал по всем параметрам корректный json. Json проверял на разных валидаторах, все говорят что валидный. В итоге проблема оказалась не в самом json, а в способе его формирования.
Скрипт был достаточно наколеночным и для того, чтобы избежать наличия запятой после последнего элемента просто в конце была добавлена строка
echo -e «\b»
Так вот консоль этот спецсимвол интерпретирует корректно, стирая предыдущий символ, а заббикс не очень понимает что к чему и ругается на невалидный json.