Ad Widget

Collapse

JSONpath support is not full in zabbix?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Gutsycat
    Member
    • Nov 2017
    • 72

    #1

    JSONpath support is not full in zabbix?

    I knew that Zabbix supports JSON Path as described here https://www.zabbix.org/wiki/Testing_Of_Preprocessing. Good.

    I went to http://jsonpath.com/ for test and made this query $.phoneNumbers[?(@.type=="iPhone")].number

    I got this

    [
    "0123-4567-8888"
    ]

    anyway I need only "0123-4567-8888".

    Next. I have created simple php script for test purpose:

    $data["firstname"] = "John";
    $data["lastName"] = "doe";
    $data["age"] = 26;
    $data["address"]["streetAddress"] = "naist street";
    $data["address"]["city"] = "Nara";
    $data["address"]["postalCode"] = "630-0192";
    $data["phoneNumbers"][0]["type"] = "iPhone";
    $data["phoneNumbers"][0]["number"] = "0123-4567-8888";
    $data["phoneNumbers"][1]["type"] = "home";
    $data["phoneNumbers"][1]["number"] = "0123-4567-8910";

    echo json_encode($data);


    Create HTTP client item and it works fine, next I have created dependent item with same query $.phoneNumbers[?(@.type=="iPhone")].number

    and I got:

    Item preprocessing step #1 failed: cannot extract value from json by path "$.phoneNumbers[?(@.type=="iPhone")].number": unsupported character in json path starting with: "[?(@.type=="iPhone")].number"
  • Gutsycat
    Member
    • Nov 2017
    • 72

    #2
    $data["firstname"] = "John";
    $data["lastName"] = "doe";
    $data["age"] = 26;
    $data["address"]["streetAddress"] = "naist street";
    $data["address"]["city"] = "Nara";
    $data["address"]["postalCode"] = "630-0192";
    $data["phoneNumbers"][0]["type"] = "iPhone";
    $data["phoneNumbers"][0]["number"] = "0123-4567-8888";
    $data["phoneNumbers"][1]["type"] = "home";
    $data["phoneNumbers"][1]["number"] = "0123-4567-8910";

    echo json_encode($data);


    Create HTTP client item and it works fine, next I have created dependent item with same query $.phoneNumbers[?(@.type=="iPhone")].number

    and I got:

    Item preprocessing step #1 failed: cannot extract value from json by path "$.phoneNumbers[?(@.type=="iPhone")].number": unsupported character in json path starting with: "[?(@.type=="iPhone")].number"

    Zabbix version 4.0.0

    Comment

    • Atsushi
      Senior Member
      • Aug 2013
      • 2028

      #3
      It says in the manual as follows.

      Extract value or fragment from JSON data using a simple subset of JSONPath functionality.


      Since it is a subset, it seems that expansion requests are cited as well.

      ex.
      ZBXNEXT-4502 : Support of 'advanced' JSON Path expressions

      Comment

      Working...