<< Chapter < Page | Chapter >> Page > |
The code in Listing 2 displays the raw JSON string followed by a blank line.
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 .
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.
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.
JSONArray gameArrayList = (JSONArray)jsonMap.get("game");
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.
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 .
First Player's Name: Tom
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".
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 .
First Player's cards
2-club3-heart
4-diamond5-spade
Listing 6 uses similar code to 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
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?