This page is optimized for mobile devices, if you would prefer the desktop version just click here

22.7 Json0215: encoding json strings  (Page 2/3)

The code in Listing 1 instantiates two objects of the class named ArrayList to serve as containers for the JSONObject objects and the JSON strings. This is plain vanilla Java code. There is nothing new here.

Create and populate a JSONObject object

Listing 2 creates and populates the first JSONObject object with key/value pairs. The keys are "name", "age", and "student" respectively. The value types are String , int , and boolean respectively.

Listing 2 . Create and populate a JSONObject object. listA.add(new JSONObject());listA.get(0).put("name","Joe"); listA.get(0).put("age",21);listA.get(0).put("student",true);

The code in Listing 2 begins by instantiating a new object of the JSONObject class and adding its reference into the first element (0) of the ArrayList object. Then it calls the get method on the ArrayList object three times in succession to gain access to the JSONObject . Each time it gains access to the JSONObject object, it calls the put method inherited from the HashMap class to store a key/value pair in the JSONObject object.

Note that the data stored in the JSONObject object is an unordered collection. As you will see later, the order inwhich the key/value pairs are extracted from the object using an iterator is unrelated to the order in which the key/value pairs are stored in the object.

Create and populate two more JSONObject objects

Listing 3 repeats the process two more times to create, populate, and save two more JSONObject objects. Note that one of these objects is populated in a different order than is the case in Listing 2 .

Listing 3 . Create and populate two more JSONObject objects. //Create and populate the second JSONObject. listA.add(new JSONObject());listA.get(1).put("student",false); listA.get(1).put("name","Sue");listA.get(1).put("age",32);//Create and populate the third JSONObject listA.add(new JSONObject());listA.get(2).put("name","Tom"); listA.get(2).put("age",19);listA.get(2).put("student",true);

Encode the data into JSON strings

Listing 4 uses an Iterator to gain access to each populated JSONObject object. Each time it gains access to an object, it calls the toJSONString method that is defined in the JSONObject class to transform the object into a JSON string.

At this point, the program could write the JSON strings into an output stream for transfer to some other programming environment. However as mentionedearlier, to keep the program simple, the program saves the JSON strings as elements in a second ArrayList object.

Listing 4 . Encode the data into JSON strings. Iterator<JSONObject>iteratorA = listA.iterator(); while (iteratorA.hasNext()){listB.add(iteratorA.next().toJSONString()); }//end while loop

Display the JSON strings

Listing 5 uses an Iterator to access and display each of the JSON strings that are stored in the ArrayList object.

Listing 5 . Display the JSON strings. Iterator<String>iteratorB = listB.iterator(); while (iteratorB.hasNext()){System.out.println(iteratorB.next()); }//end while loop}//end main }//end class Code

The screen output is shown in Figure 1 .

<< Chapter < Page Page > Chapter >>

Read also:

OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.
Jobilize.com uses cookies to ensure that you get the best experience. By continuing to use Jobilize.com web-site, you agree to the Terms of Use and Privacy Policy.