Sunday, January 2, 2011

JSON Object Code Example

The first example is to demonstrate the power and the accessibility JSON offers to developers.
This is a JavaScript code designed to make things easier for the -new to JSON- developer:

    function User(fName, lName, age, friends)
    {
        var UserObject = {
            FirstName: fName,
            LastName: lName,
            Age: age,
            Friends: [],
            IsUnderAge: function()
            {
                return this.Age > 21 ? true : false;
            }
        };
       
        var FriendsCounter = 0;
        for (var frnd in friends)
        {
            UserObject.Friends[FriendsCounter] = friends[frnd];
            FriendsCounter++;
        }
       
        return UserObject;
    }

This is the constructor.  Same as in every OOP language, each object needs to have constructors.

Now, lets say I let a user named Igor fill an information form containing the following fields:
  1. First Name
  2. Last Name
  3. Age
  4. Friends - each friend will have the same fields.
On the "Submit" button I have a call for a "CreateUser" function which will take the needed fields (using jQuery - but that's for another post) and send to the User constructor.

         function createUser()
        {
            var IgorsFriends = [];
            IgorsFriends[0] = new User("Uri", "GamingTech", 29, []);
            IgorsFriends[1] = new User("Sergey", "
GamingTech", 35, [
                new User("Noam", "
GamingTech", 27, [])
            ]);
           
            var Igor = new User("Igor", "
GamingTech", 33, IgorsFriends);
        }


The outcome of this function will be a varaible named Igor which will have the following attributes:
  1. First Name
  2. Last Name
  3. Age
The following methods:
  1. IsUnderAge
And the following Arrays:
  1. Friends - which will contain list of friends as User objects. 

Good luck,
Elad Shalom,
CTO at ITweetLive.com

5 comments:

  1. Finally i have found something that i can understand. Thank you!

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete