Рубиновая Сирена
Мой контент json хранится в файле:
{
"vms": [
{
"component": "pgdb",
"count": "1",
"endpoints": "80:8080,5432:5432"
},
{
"component": "mq",
"count": "1",
"endpoints": "80:8080,5672:5672,15672:15672"
},
{
"component": "ucms",
"count": "1",
"endpoints": "80:80,8080:8080"
},
{
"component": "wsgw",
"count": "1",
"endpoints": "8080:8080,9093:9093"
}
]
}
in irb :
require 'json'
require 'Siren'
json = File.read('c:\\stack1.json')
irb(main):022:0> Siren.query "$.vms..[? @.component == ucms ]", json
=> []
Я пытаюсь составить запрос, который будет искать по имени компонента и возвращать значение конечных точек. Любая помощь / указатели будут оценены.
Thanx
1 ответ
Для сопоставления строк вам нужно использовать =
оператор, а не ==
, Также прочитанный файл должен быть проанализирован перед запросом:
json = Siren.parse File.read('c:\\stack1.json')
Siren.query "$.vms..[? @.component = ucms ]", json