<< Chapter < Page Chapter >> Page >

Display the JSON string

The code in Listing 2 displays the raw JSON string followed by a blank line.

Listing 2 . Display the JSON string. System.out.println("json string: " + jsonMap); System.out.println();//blank line

This code produces the screen output shown by the screen shot in Figure 1 .

Figure 1. Screen shot of raw JSON string. json string: {"game":[{"cards":["2-club","3-heart","4-diamond","5-spade"],"name":"Tom"},{"cards":["4-heart","5-heart","6-club","7-diamond"],"name":"Joe"}]}

Note that the line break in Figure 1 was inserted by the operating system while displaying the string in the command-line window. The line break does notexist in the data in the file.

Access the game array

Listing 3 calls the get method inherited from the HashMap class to get the game array into an object of type JSONArray , which is a subclass of the ArrayList class.

Listing 3 . Access the game array. JSONArray gameArrayList = (JSONArray)jsonMap.get("game");

Get information about the first player

Recall that a JSONArray object is an ordered list as a subclass of the ArrayList class. The get method inherited from the ArrayList class can be used to access elements in the list on the basis of a zero-based index.At this point, information about the first player is stored in the list as an object of type JSONObject . (It is actually stored as type Object and must be downcast to type JSONObject in order to do much with it.)

Listing 4 begins by accessing the element at an index value of zero, which is the object containing information about the first player.

Listing 4 . Get information about the first player. JSONObject firstPlayerMap = (JSONObject)gameArrayList.get(0); System.out.println("First Player's Name: " +firstPlayerMap.get("name"));

Then Listing 4 uses the get method inherited from the HashMap class to get and display the value associated with the key "name". This produces the screen output shown in Figure 2 .

Figure 2. Display first player's name. First Player's Name: Tom

Display first player's cards

Listing 5 begins by using the get method of the HashMap class to access the JSONArray object that is the value for the key "cards".

Listing 5 . Display first player's cards. JSONArray firstPlayerCardsList = (JSONArray)firstPlayerMap.get("cards");System.out.println("First Player's cards"); Iterator<String>iterator = firstPlayerCardsList.iterator(); while (iterator.hasNext()) {System.out.println(iterator.next()); }//end while loop

Then Listing 5 uses an iterator to iterate through the JSONArray object and to display each of the cards in the array, (which is actually a list at this point) . This code produces the output shown in Figure 3 .

Figure 3. The first player's cards. First Player's cards 2-club3-heart 4-diamond5-spade

Get and display information about the second player

Listing 6 uses similar code to get and display information about the second player.

Listing 6 . Get and display information about the second player. System.out.println(); JSONObject secondPlayerMap = (JSONObject)gameArrayList.get(1);System.out.println("Second Player's Name: " + secondPlayerMap.get("name"));JSONArray secondPlayerCardsList =(JSONArray)secondPlayerMap.get("cards"); System.out.println("Second Player's cards");iterator = secondPlayerCardsList.iterator(); while (iterator.hasNext()) {System.out.println(iterator.next()); }//end while loop}//end main }//end class Code

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  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.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask