Ad Widget

Collapse

LLD - value should be a JSON object

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • alexzagr
    Member
    • Sep 2012
    • 49

    #1

    LLD - value should be a JSON object

    Давно прикручивал данные по lld, кажется еще на версии 2.0.1, затем вновь понадобилось прикрутить lld, но уже на 2.0.5. И получил ошибку "value should be a JSON object".
    Данные такие:
    Code:
    {
        "data": [
            {
                "{#CHID}": "022",
                "{#CHNAME}": "27-й канал"
            },
            {
                "{#CHID}": "011",
                "{#CHNAME}": "Интер"
            },
            ...
            {
    		"{#CHID}":"052",
    		"{#CHNAME}":"ПлюсПлюс"
    	}
    
    	]
    }
    Проверил на http://jsonlint.com/ - говорит всё нормально, раньше такие данные нормально принимались, и нормально принимаются другие данные, формируемые по такому-же принципу. Кирилица в utf-8.
    Как найти проблему, может беда с 2.0.5 и в 2.0.6 это исправили?
  • alexzagr
    Member
    • Sep 2012
    • 49

    #2
    Похоже на какую-то особенность агента 2.0.5, откатил отдельно агента на 2.0.2 и все заработало

    Comment

    • Jimson
      Senior Member
      • Jan 2008
      • 1327

      #3
      Ну вы не уникальны, у меня тоже почти все LLD правила это внешние проверки, еще ни разу при апгрейдах проблем небыло, текущая версия 2.0.6 r34696.

      Попробуйте минимизировать кол-во "ненужных" символов. Вот пример из моего перлового скрипта генерящего из хэша %json вывод для забикса.

      Code:
      my ($index, $data, $macro, $value) = ();
      print '{"data":[', "\n";
      while (($index, $data) = each %json) {
          print '{"{#IFINDEX}":"', $index, '"';
          while (($macro, $value) = each %$data) {
              print ',"{#', $macro, '}":"', $value, '"';
          }
          print "},\n";
      }
      print "]}\n";

      Comment

      • alexzagr
        Member
        • Sep 2012
        • 49

        #4
        Ненужные символы - это табуляция и пробелы? Больше ничего ненужного там нет, с помощью lld передаётся необходимый минимум.

        Пока поработает на агенте 2.0.2, также нормально работает на 2.0.3 на другом сервере. Может чуть позже попробую последнюю версию.

        Comment

        Working...