ruby:jsonpath使用if case进行访问

ruby:jsonpath使用if case进行访问,ruby,jsonpath,Ruby,Jsonpath,我有一个下面的json。使用jsonpath gem,我可以通过 JsonPath.new("$.child_events[*]").on(b) 但是,我需要检查在child_事件中是否有“via_reference_id” 但这是行不通的。只有在任何子事件中存在“via\u引用\u id”时,我才能访问票证\u id b = {"created_at"=>"2016-12-12T23:03:45Z", "ticket_id"=>24510, "timestamp"=>148

我有一个下面的json。使用jsonpath gem,我可以通过

JsonPath.new("$.child_events[*]").on(b)
但是,我需要检查在child_事件中是否有“via_reference_id”

但这是行不通的。只有在任何子事件中存在“via\u引用\u id”时,我才能访问票证\u id

b = {"created_at"=>"2016-12-12T23:03:45Z", "ticket_id"=>24510, "timestamp"=>1481583825, "event_type"=>"Audit", "system"=>{"longitude"=>nil, "location"=>nil, "client"=>nil, "latitude"=>nil}, "id"=>110084880989, "updater_id"=>7964288149, "via"=>"Web form", "child_events"=>[{"event_type"=>"Change", "previous_value"=>"offered", "id"=>110084881029, "via_reference_id"=>nil, "satisfaction_score"=>"good", "via"=>"Web form"}, {"status"=>"open", "event_type"=>"Change", "via"=>"Rule", "id"=>110084881109, "via_reference_id"=>46315149, "rel"=>"trigger", "previous_value"=>"solved"}]}

它以什么方式不起作用?@WayneConrad它抛出一个错误
SyntaxError:(eval):1:语法错误,意外的']'
b = {"created_at"=>"2016-12-12T23:03:45Z", "ticket_id"=>24510, "timestamp"=>1481583825, "event_type"=>"Audit", "system"=>{"longitude"=>nil, "location"=>nil, "client"=>nil, "latitude"=>nil}, "id"=>110084880989, "updater_id"=>7964288149, "via"=>"Web form", "child_events"=>[{"event_type"=>"Change", "previous_value"=>"offered", "id"=>110084881029, "via_reference_id"=>nil, "satisfaction_score"=>"good", "via"=>"Web form"}, {"status"=>"open", "event_type"=>"Change", "via"=>"Rule", "id"=>110084881109, "via_reference_id"=>46315149, "rel"=>"trigger", "previous_value"=>"solved"}]}