Expression using isArray?
Does snaplogic support the use if isArray (or similar function)?
We are hitting multiple issues across pipelines where the inbound data is sometimes simply a value and sometimes an array. Would like to be able to check this, and create the array if not already an array.
For example in the below response data, wd:Section_Listing_Data an sometimes array, other times a single section of data. How to determine “isArray” and create an array if wd:Section_Listing_Data is not an array?
Blockquote
JSON with array, based on multiple ID’s"wd:Section_Listing_Data": [ { "wd:ID": "COURSE_SECTION-6-25038", "wd:Course_Listing_Reference": { "wd:ID": { "@wd:type": "Course_Listing_ID", "$": "COURSE_LISTING-6-12131" } }, "wd:Section_Number": "01", "wd:Course_Listing_Number": "999", "wd:Course_Listing_Subject_Reference": { "wd:ID": { "@wd:type": "Course_Subject_ID", "$": "MTH" } } }, { "wd:ID": "COURSE_SECTION-6-25039", "wd:Course_Listing_Reference": { "wd:ID": { "@wd:type": "Course_Listing_ID", "$": "COURSE_LISTING-6-12132" } }, "wd:Section_Number": "01", "wd:Course_Listing_Number": "999", "wd:Course_Listing_Subject_Reference": { "wd:ID": { "@wd:type": "Course_Subject_ID", "$": "SDS" } } } ],
JSON with obj, due to single ID
“wd:Section_Listing_Data”: {
“wd:ID”: “COURSE_SECTION_LISTING_SOCW780-1_AP_202130”,
“wd:Course_Listing_Reference”: {
“wd:ID”: {
“@wd:type”: “Course_Listing_ID”,
“$”: “COURSE_LISTING_SOCW780”
}
},
“wd:Section_Number”: “1”,
“wd:Course_Listing_Number”: “780”,
“wd:Course_Listing_Subject_Reference”: {
“wd:ID”: {
“@wd:type”: “Course_Subject_ID”,
“$”: “SOCW”
}
}
},
There are a couple of options, maybe more.
I use sl.ensureArray quite frequently. It converts the object to an array, if it is not already an array.
sl.ensureArray($myObjectOrArray)
Also available is typeof, which comes in handy in other cases.
typeof $myObjectOrArray == "array"