Aim of this Article:
In this article I will explain the basics of JSON and how we can create JSON using Liferay API.
Whats JSON:
- JSON stands for JavaScript Object Notation
- JSON is lightweight data interchange format
- JSON is language independent
JSON
JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999.
Example of JSON Object:
{"name":"Hamidul Islam","country":"India","phone":"8095185442"}
Note 1: A JSON Object is formed in between { }
Note 2: A JSON Object can contains many data. Each data is separated by comma(,). For example in the above example “name”:”Hamidul Islam” is the data.
Note 3: Each data is consist of key and value pair. In “name”:”Hamidul Islam” name is the key and Hamidul Islam is the value.
Example of JSON Array:
"persons":[ {"firstName":"Hamidul", "lastName":"Islam"}, {"firstName":"John", "lastName":"Abraham"}, {"firstName":"Raja", "lastName": "Kunal"} ];
Note 1: A [ ] represents JSON Array. In the above example the name of the array is persons
Note 2: A JSON Array contains multiple Objects. Each object in the array is represented by { }. In the above example there are 3 JSON Objects inside the array.
JSON object creation by JavaScript:
Anything can not be converted to JSON Object. A string of JSON format can be converted to JSON object by using JSON.parse
<html> <body> <h2>JSON Object Creation by JavaScript</h2> <script> //Below is the JSON String var jsonString = '{"name":"Hamidul Islam","country":"India","phone":"8095185442"}' //Below is the JSON Object var jsonObject = JSON.parse(jsonString); //Access value from JSON Object alert("Value of name:"+jsonObject.name); alert("Value of country:"+jsonObject.country); </script> </body> </html>
JSON Array Creation by JavaScript:
<html> <body> <h2>JSON Array Creation by JavaScript</h2> <script> //Create the JSON Array var persons = [ {"firstName":"Hamidul", "lastName":"Islam"}, {"firstName":"John", "lastName":"Abraham"}, {"firstName":"Raja", "lastName": "Kunal"} ]; //Access the JSON Object inside the array alert("Value of firstName in the first object:"+persons[0].firstName); alert("Value of lastName in the first object:"+persons[0].lastName); </script> </body> </html>
Note: While creating JSON Array don’t use JSON.parse
Liferay API to create JSON Object:
Consider we need to create JSON object like {“name”:”Hamidul Islam”,”country”:”India”}. This can be done in 2 ways
First Option:
JSONObject jsonObject = JSONFactoryUtil.createJSONObject(); jsonObject.put("name", "Hamidul Islam"); jsonObject.put("country", "India");
Second Option:
String jsonString = "{'name':'Hamidul Islam','country':'India'} "; JSONObject jsonObject = JSONFactoryUtil.createJSONObject(jsonString);
Liferay API to create JSON Array:
Suppose we want to create a JSON Array
[{“name”:”Hamidul Islam”,”country”:”India”},{“name”:”Jacob”,”country”:”Canada”},{“name”:”Smith”,”country”:”US”}]
Below is the code
JSONArray jsonArray = JSONFactoryUtil.createJSONArray(); JSONObject jsonObject1 = JSONFactoryUtil.createJSONObject("{'name':'Hamidul Islam','country':'India'}"); JSONObject jsonObject2 = JSONFactoryUtil.createJSONObject("{'name':'Jacob','country':'Canada'}"); JSONObject jsonObject3 = JSONFactoryUtil.createJSONObject("{'name':'Smith','country':'US'}"); jsonArray.put(jsonObject1); jsonArray.put(jsonObject2); jsonArray.put(jsonObject3);
Below are the imports
com.liferay.portal.kernel.json.JSONArray com.liferay.portal.kernel.json.JSONFactory com.liferay.portal.kernel.json.JSONObject com.liferay.portal.kernel.json.JSONFactoryUtil