Objeto Javascript devuelve valores basura

Estoy tratando de asignar valores a un objeto javascript y al hacerlo, algunos valores no deseados terminan ahí y parecen ser métodos de matriz como 'push', 'pop', 'splice', etc.

function myTest(){
var userArray = new Object();
var req = new Request.JSON({
url: '/myTest.php',
method: 'post',
noCache: true,
data: 'userID=999',

onSuccess: function(json){       
    for(var key in json){
      userArray = json[key];
      for (var row in userArray){
        alert(row)   // This returns values like '$family','push','pop', 'reverse' etc.
        }
    }
},
onException: function(xhr){
  alert("Unable to process your request");
},
onFailure: function(xhr){
  alert("Unable to connect to the server");
}
}).send();
}

No estoy seguro de lo que me estoy perdiendo aquí, pero parece que ciertamente lo estoy. Cualquier ayuda en esto sería apreciada grandemente

Respuestas a la pregunta(2)

Su respuesta a la pregunta