@ machaval правильно, вы должны пройти.
Есть способ, и в зависимости от вашего фона это может быть просто. Это должно быть хорошим началом, даже если оно немного негибко:
%dw 2.0
output application/dw
var ds = [
{
a: "1",
b: "2",
c: "str",
d: ["1","2","str","false"],
e: "true"
},
{
a: "1",
b: "2",
c: "str",
d: ["1","2","str","false"],
e: "true"
}
]
import try,orElseTry,orElse from dw::Runtime
// Overloaded functions that traverse the types that I know
// my data structure contains. I only traverse arrays and objects
// and the combination thereof. If you expect more types in your
// data you will have to add one overloaded function per datatype
// you expect to have up and beyond what I show below.
fun traverse(a: Array) = a map traverse($)
fun traverse(o: Object) = o mapObject {($$): traverse($)}
fun traverse(s: String) =
try(() -> s as Number)
orElseTry(() -> s as Boolean)
orElse(s)
---
traverse(ds)
edit: включить логические значения