aunque eval seria
util -en el sentido que requiere menos codigo y un resultado mas rapido- aun asi yo lo evitaria mientras sea posible. optaria mejor por una solucion como la que propone _cronos, lo unico que lo haria un poco mas parecido al array $_GET/$_POST de php.
Código:
String.prototype.query = function(split, beforeSplit){
var split = split || [/&/, /=/], query = this, queryObj = {};
if(split.constructor != Array || split.length != 2)throw new TypeError('Excepted type of argument not valid or argument lenght size not allowed.');
if(beforeSplit)query = query.replace(beforeSplit, '');
query = query.split(split[0]);
while(query.length){
var pair = query.shift().split(split[1]);
if(pair[0] in queryObj){
if(queryObj[pair[0]].constructor != Array)queryObj[pair[0]] = new Array(queryObj[pair[0]]);
queryObj[pair[0]].push(decodeURIComponent(pair[1]));
}
else queryObj[pair[0]] = (pair[1])? decodeURIComponent(pair[1]): undefined;
}
return queryObj;
}
u otra alternativa aun mejor seria json. el servidor te devuelve el contenido en formato json y luego lo pasas por JSON.parse.