declare function libjn:flatten($sequence as item()*) as item()*
{
for $item in $sequence
return
typeswitch ($item)
case array() return libjn:flatten($item())
default return $item
};
libjn:flatten(
(
{ "foo" : { "bar" : [ 1, 2 ] } },
[ 1, 2, [ { "foo" : "bar", "bar" : "foo" } ], 3, 4 ],
true(),
1,
jn:null()
)
)
{ "foo" : { "bar" : [ 1, 2 ] } } 1 2 { "foo" : "bar", "bar" : "foo" } 3 4 true 1 null