my $json = '{
"thing": {
"for": {
"key": "testing",
"keys": "nested",
"if": {
"m": "test",
"key": "test",
"then": {
"abc": 123
}
},
"elsif": {
"m": "other",
"key": "test",
"then": {
"def": 456
}
},
"else": {
"then": {
"ghi": 789
}
},
"extend": 1
},
"def" : 123
}
}';
my $compiled = JSON::Ordered::Conditional->new->compile($json, {
testing => {
a => { test => "other" },
b => { test => "test" },
c => { test => "other" },
d => { test => "thing" },
}
}, 1);
my $expected = {
thing => {
nested => {
a => {
def => 456,
extend => 1
},
b => {
abc => 123,
extend => 1
},
c => {
def => 456,
extend => 1
},
d => {
ghi => 789,
extend => 1
}
},
def => 123
}
};
is_deeply($compiled, $expected);
done_testing;