@Striker-93

Каким образом получить значения массива с помощью JSONPath?

Доброго дня господа! Прощу помощи советом.
Имеем следующий JSON формируемый zabbixом для мониторинга БД Oracle
[
  {
    "METRIC": "FRA::Number Of Files",
    "VALUE": "2299"
  },
  {
    "METRIC": "FRA::Restore Point",
    "VALUE": "0"
  },
  {
    "METRIC": "FRA::Space Limit",
    "VALUE": "322122547200"
  },
  {
    "METRIC": "FRA::Space Reclaimable",
    "VALUE": "0"
  },
  {
    "METRIC": "FRA::Space Used",
    "VALUE": "57831493120"
  },
  {
    "METRIC": "FRA::Usable Pct",
    "VALUE": "82.0467416445414"
  },
  {
    "METRIC": "REDO::Available",
    "VALUE": "1"
  },
  {
    "METRIC": "SGA::Buffer_Cache",
    "VALUE": "9730785280"
  },
  {
    "METRIC": "SGA::Fixed_Sga",
    "VALUE": "2268672"
  },
  {
    "METRIC": "SGA::Java Pool",
    "VALUE": "100663296"
  },
  {
    "METRIC": "SGA::Large Pool",
    "VALUE": "100663296"
  },
  {
    "METRIC": "SGA::Log_Buffer",
    "VALUE": "27979776"
  },
  {
    "METRIC": "SGA::Shared Pool",
    "VALUE": "4681799328"
  },
  {
    "METRIC": "USER::Expire password",
    "VALUE": "999"
  }
]


Официальной документацией предлагается забирать значения с помощью запроса
$[?(@.METRIC=="FRA::Space Limit")].VALUE.first()
Но данный запрос ничего не возвращает.

При проверке на jsonpath.com предлагаемые варианты реализации такого действия даже с учетом мануалов zabbix и их примеров данных так же не работают.
$[?(@.METRIC=="FRA::Space Limit")].VALUE данной строкой я могу получить к примеру массив
[
"322122547200"
]
Но как мне вытащить значение без кавычек без символов массива.

В данной теме это обсуждается, но варианты с применением first() не работают.
https://stackoverflow.com/questions/23608050/getti...
  • Вопрос задан
  • 416 просмотров
Решения вопроса 1
@1rV1N
Добавь еще один постпроцесинг с
JsonPath $.[0]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Striker-93 Автор вопроса
Я пробовал различные вариации и рекомендации
$[?(@.METRIC=="FRA::Space Limit")].VALUE.$[0] - если я правильно понял про добавление постпроцессинга

$.[0] возвращает первый знак значений из кавычек

[
"3"
]

любые варианты с [ ] возвращают массив.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы