How to take selected fields from nested array

sample json

data {
Name: "Cesar Barroso"
ageBands : [
{
ageFrom :25,
ageTo :64,
adult :true,
treatAsAdult :true,
description :"Adult"},
{
ageFrom :35,
ageTo :25,
adult :true,
treatAsAdult :true,
description :"Adult"},
{..}
]
..
}

ageBand is dynamic array. from that I wanted to get selected fields as
ageBands : [
{ageFrom :25,
ageTo :64,
description :"Adult"},
{ageFrom :35,
ageTo :25,
description :"Adult"}
]

I tried from ruby filter. unable to put loop

ruby {
code => "
event.set('ageBand',Hash['ageTo',event.get('[data][ageBands][1][ageTo]').to_i,'ageFrom',event.get('[data][ageBands][1][ageFrom]').to_i,'description', event.get('[data][ageBands][1][description]').to_s])
"}

You could try this

    ruby {
        code => '
            data = event.get("data")
            if data
                ageBands = []
                data["ageBands"].each { |x|
                    h = {}
                    h["ageFrom"] = x["ageFrom"]
                    h["ageTo"] = x["ageTo"]
                    h["description"] = x["description"]
                    ageBands << h
                }
                event.set("ageBands", ageBands)
            end
        '
    }

This is working, Thx Badger

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.