Tuesday, April 12, 2011

I have written a small add-on for inbuilt JSON Lib of Android (org.json.*). Android's in-build JSON library is very permeative and provides just the basic functionalities. There is no Tokenize functionality which can automatically convert a JSON string into its relevant Java Bean class.

Though there are few alternate open source libraries like jackson-json, gson etc. But the inbuilt JSON library of Android is pretty simple to use and with this add-on you'll be able to get the missing flavor of auto-bean conversion.

How to use it ?
Please download the JSONHandler.java and include in your Android project source code. It provides an important method parse() which can convert a JSON string into Java Bean class.
It uses Java re-factoring, so Bean class field name and JSON property name should exactly match. Let's look into how to parse a simple JSON structure-String jsonString = "{name: 'Jon Smith', id: 1234, " +"address: {cityName: 'San Diego', pinCode:345, latitude: 23.789, longitude: 78.965}," + "}";
To parse above JSON structure you need to create a Bean class- Person.java having following properties and their Get/Set methods-String name;int id;Address address;
As you can see Address is again a custom class- Address.java having following properties and their Get/Set methods-String cityName;int pinCode;double latitude;double longitude;

Once you define above 2 bean classes, you can use following piece of code to parse the JSON string into above bean class-Person person = (Person)(new JSONHandler().parse(jsonString, Person.class, "com.prasanta"));
In the above code piece, "com.prasanta" is the name of base package under which Bean classes are defined.

Thursday, April 7, 2011

Here I'll explain the usage of a powerful keyword/programming structure of JavaScript, "prototype". It is one of the member variable of Function object and Function object is kind of Supper class for any function that you write in JavaScript. Every function in Javascript is of type Function object.

"prototype" provides really a powerful and simple way of extending JavaScript Object and Override their existing functions. Prototype provides additional look up chain for variable and method definition search.