I think what you are saying is that you want to use JSON to set properties of different kinds of objects, objects which each have their own methods? It's not clear what you are after, or are doing currently. But if I'm right, you are definitely doing it wrong.
In short, do not add functions to your data. Instead, do make classes with methods which can accept data on creation.
// Constructor, accepts an object expected to have data about a user
var User = function(data) {
// save a field from the passed in user data on this instance
this.name = data.name;
};
// a method every User object will have that uses some bit of user data
User.prototype.sayHi = function() {
alert('Hi, my name is ' + this.name);
};
// A place to put our new user objects
var users = [];
// An array of objects to iterate through
var jsonData = [
{name: 'Joe'},
{name: 'Sally'}
];
// Iterate through the array
for (var i = 0; i < jsonData.length; i++) {
// make a user, passing the constructor the data object for that user
users.push( new User(jsonData[i]) );
}
users[0].sayHi(); // alerts: "Hi, my name is Joe"
users[1].sayHi(); // alerts: "Hi, my name is Sally"