Whatever message this page gives is out now! Go check it out!
set.keys()
setKeys(set)| Parameter | Description |
|---|---|
| set | Set (BIF form). |
cfscript (syntax: set.keys()).
<cfscript>
s = setNew();
s.add("k1");
s.add("k2");
it = setKeys(s);
while (it.hasNext()) {
writeOutput(it.next() & " "); // k1 k2 (order not guaranteed for unordered set)
}
</cfscript>
<cfscript>
/**
* Whitelist struct keys using a Set of allowed key names.
* Prefer toArray() if keys() is unavailable or setKeys does not return an iterator.
*/
function filterStructByAllowlist(required struct data, required any allowedKeySet) {
var out = {};
// Option A: array from set (portable)
var keyNames = allowedKeySet.toArray();
for (var k in keyNames) {
if (structKeyExists(data, k)) {
out[k] = data[k];
}
}
return out;
}
// Example: API may only return id and name
payload = {
"id": 100,
"name": "Ada",
"secret": "do-not-leak",
"internalOnly": true
};
allowed = setNew();
allowed.add("id");
allowed.add("name");
safe = filterStructByAllowlist(payload, allowed);
writeOutput(serializeJSON(safe)); // {"id":100,"name":"Ada"}
</cfscript>