<< Chapter < Page | Chapter >> Page > |
There is nothing new in Listing 1 so that code shouldn't require further explanation. Note however, that the name "Tom" will become significant in alater discussion.
The code in Listing 2 instantiates and populates a JSONArray object.
JSONArray arrayListA = new JSONArray();
arrayListA.add("2-club");arrayListA.add("3-heart");
arrayListA.add("4-diamond");arrayListA.add("5-spade");
Previous pages in this book have constructed JSON strings using a subclass of the Java HashMap class -- (the JSONObject class) . It is worth noting that JSON strings constructed in that manner are unordered.However, JSON arrays constructed using the JSONArray class, which is a subclass of the ArrayList class, are ordered lists.
The program that I will explain in this page is intended to represent the beginning state of a two-person card game where each player receives four cards.The code in Listing 2 constructs a list of the cards that will be dealt to one of the players.
The code in Listing 3 populates the JSONObject object referred to as hashMapA with a key/value pair where the key is "cards" and the value is an object of the JSONArray class containing a list of strings naming specific playing cards.
hashMapA.put("cards",arrayListA);
Note that hashMapA already contained a key/value pair identifying one of the players in the game named "Tom" (see Listing 1 ). Thus the code in Listing 1 through Listing 3 can be though of as "dealing" the cards identified in Listing 2 to the player named "Tom".
Listing 4 creates and populates a second list of playing cards and deals them to the second player in the game whose name is "Joe".
JSONObject hashMapB = new JSONObject();
hashMapB.put("name","Joe");JSONArray arrayListB = new JSONArray();arrayListB.add("4-heart");
arrayListB.add("5-heart");arrayListB.add("6-club");
arrayListB.add("7-diamond");hashMapB.put("cards",arrayListB);
Now that the players have been created and have received their cards, it is time to put them in the game.
Listing 5 begins by adding the two players and their card arrays to a new object of type JSONArray . This results in nested arrays.
JSONArray arrayListC = new JSONArray();
arrayListC.add(hashMapA);arrayListC.add(hashMapB);
JSONObject hashMapC = new JSONObject();hashMapC.put("game",arrayListC);
Then Listing 5 creates a new JSONObject object to represent the game and populatesit with a key/value pair where the key is "game" and the value is the array containing the two players and their card arrays.
Listing 6 calls the writeJSONString method on the JSONObject object to encode the object into a JSON string and write it to an output filenamed junk.json .
try{
PrintWriter out =new PrintWriter(new File("junk.json"));
hashMapC.writeJSONString(out);out.flush();
}catch(IOException ex){ex.printStackTrace();
}//end catch}//end main
}//end class Code
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?