Android provides four different classes to manipulate JSON data. These classes are JSONArray,JSONObject,JSONStringer
and JSONTokenizer.
{
"sys":
{
"country":"GB",
"sunrise":1381107633,
"sunset":1381149604
},
"weather":[
{
"id":711,
"main":"Smoke",
"description":"smoke",
"icon":"50n"
}
],
"main":
{
"temp":304.15,
"pressure":1009,
}
}
JSON - Elements
An JSON file consist of many components. Here is the table defining the components of an JSON file and their description −
Sr.No | Component & description |
---|---|
1 |
Array([)
In a JSON file , square bracket ([) represents a JSON array |
2 |
Objects({)
In a JSON file, curly bracket ({) represents a JSON object |
3 |
Key
A JSON object contains a key that is just a string. Pairs of key/value make up a JSON object |
4 |
Value
Each key has a value that could be string , integer or double e.t.c |
JSON - Parsing
For parsing a JSON object, we will create an object of class JSONObject and specify a string containing JSON data to it. Its syntax is:
String in;
JSONObject reader = new JSONObject(in);
The last step is to parse the JSON. An JSON file consist of different object with different key/value pair e.t.c. So JSONObject has a separate function for parsing each of the component of JSON file. Its syntax is given below:
JSONObject sys = reader.getJSONObject("sys");
country = sys.getString("country"); JSONObject main = reader.getJSONObject("main");
temperature = main.getString("temp");
The method getJSONObject returns the JSON object. The method getStringreturns the string value of the specified key.
Apart from the these methods , there are other methods provided by this class for better parsing JSON files. These methods are listed below −
Sr.No | Method & description |
---|---|
1 |
get(String name)
This method just Returns the value but in the form of Object type |
2 |
getBoolean(String name)
This method returns the boolean value specified by the key |
3 |
getDouble(String name)
This method returns the double value specified by the key |
4 |
getInt(String name)
This method returns the integer value specified by the key |
5 |
getLong(String name)
This method returns the long value specified by the key |
6 |
length()
This method returns the number of name/value mappings in this object.. |
7 |
names()
This method returns an array containing the string names in this object. |