Ad Widget

Collapse

Размер json lld

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • burgum
    Junior Member
    • Apr 2013
    • 15

    #1

    Размер json lld

    Добрый день.
    Передаю на сервер JSON

    Code:
    {
      "data":[
           { 
              "{#FSNAME}":"1234567890",           "{#FSTYPE}":"1234567890123456789012345678901234567"},
              "{#FSNAME}":"1234567891",           "{#FSTYPE}":"1234567890123456789012345678901234568"},  
      ]
    }
    Если суммарная длина хотя бы одной пары FSNAME+FSTYPE больше 37 символов получаю ошибку Value should be a JSON object.
    Attached Files
  • ficsh
    Junior Member
    • Jan 2015
    • 2

    #2
    Используйте валидатор JSON . Например http://jsonlint.com/ . Не хватает у вас "{"

    Code:
    {
      "data":[
           { 
              "{#FSNAME}":"1234567890",           "{#FSTYPE}":"1234567890123456789012345678901234567"
    },
    [B][SIZE="7"]{[/SIZE][/B]
              "{#FSNAME}":"1234567891",           "{#FSTYPE}":"1234567890123456789012345678901234568"
    }
      ]
    }
    Вот такой JSON должен быть валиден

    Comment

    • burgum
      Junior Member
      • Apr 2013
      • 15

      #3
      Эту ошибку я допустил, когда тут правил json. Не спрашивайте зачем я это делал.

      А проблема остается, если сумма длин параметров меньше 37, всё хорошо, макросы раскрываются, item создаётся. как только перехожу за 37, получаю ошибки.

      Comment

      • sadman
        Senior Member
        • Dec 2010
        • 1611

        #4
        С какой операционки передаете и чем?

        Comment

        • ficsh
          Junior Member
          • Jan 2015
          • 2

          #5

          У меня на версии 2.2.9 проблем не возникло, я положил ваш вывод в файл и сделал обнаружение . все заработало без проблем .

          Code:
          UserParameter=test,cat /tmp/test
          UserParameter=test1[*],echo $1
          Code:
          [root@zbxprx ~]# cat /tmp/test
          {
            "data":[
                 {
                    "{#FSNAME}":"1234567890",           "{#FSTYPE}":"1234567890123456789012345678901234567"
          },
          {
                    "{#FSNAME}":"1234567891",           "{#FSTYPE}":"1234567890123456789012345678901234568"
          }
            ]
          }

          Попробуйте чтобы исключить работу заббикса что-нибудь подобное. Как написал sadman , опишите подробнее .

          Comment

          • sadman
            Senior Member
            • Dec 2010
            • 1611

            #6
            Собственно, тут надо перво-наперво через zabbix_get проверить, что приходит заббикс-серверу.

            Если обнаружатся строчки с переносами посередине линии, потому что, к примеру, cmd через UserParameter из под виндов по дефолту всё пытается отформатировать под 80 chars lenght, то проблема ясна - заббикс этого не переносит.

            Что написано в коде JSON-парсера я не читал, но, похоже, он анализирует по ходу чтения, а не сначала клеит и EOL-ы выкидывает. Самый простой способ - не использовать Pretty-форматирование, а валить всё кучей. Предел - 65 кбайт.

            Comment

            Working...