Skip to content

Instantly share code, notes, and snippets.

@alexbosworth
Created October 20, 2010 07:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexbosworth/635964 to your computer and use it in GitHub Desktop.
Save alexbosworth/635964 to your computer and use it in GitHub Desktop.
in progress GET object parser
// SCRIPT IN PROGRESS! BEWARE SUPER HACKY/UGLY CODE BELOW
// takes an associative array of args "a[b][c]" = d into a : { b : { c : d } }
// use: var getArgs = parseGetArgs(url.parse(request.url, true).query);
function parseGetArgs(args) {
if (!args) return null;
var result = {};
for (var arg in args) {
var parts = arg.split(/[\[\]]/);
for (var i = 0, part, last = result, ii = parts.length; i < ii; i++) {
part = parts[i];
if (!part.length) continue;
if (i == ii - 2) {
last[part] = args[arg];
continue;
}
if (!last[part]) // this is a new key
last[part] = (i == ii - 1) ? args[arg] : {};
last = last[part];
}
}
return result;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment