<< Chapter < Page | Chapter >> Page > |
Decode using JSONValue class
Name: Joe Age: 21 Is student? trueName: Sue Age: 32 Is student? false
Name: Tom Age: 19 Is student? trueDecode using JSONParser class
Name: Joe Age: 21 Is student? trueName: Sue Age: 32 Is student? false
Name: Tom Age: 19 Is student? true
The contents of the JSON strings for this same data were displayed in Figure 1 of the earlier page titled Json0215: Encoding JSON Strings .
If you compare the output in the top half of Figure 1 above with the JSON string data on the earlier page, you will see that they match.
You could also make the comparison with the data in the code in the early portion of Listing 6 .
Returning to the main method, the code in Listing 4 calls the decodeD method passing the list of JSON strings along with an empty ArrayList object for the purpose of decoding the JSON strings using a parse method of the JSONParser class.
//Create another container for decoded JSON strings.
ArrayList<JSONObject>listD = new ArrayList<JSONObject>();//Decode and display JSON strings using the parse method of the
// JSONParser classSystem.out.println("Decode using JSONParser class");
decodeD(listB,listD);display(listD);
System.out.println();//blank line}//end main
Then the code in Listing 4 calls the display method to display the results, producing the text in the bottom half of Figure 1 .
As you can see, the results in the top and bottom halves of Figure 1 match, indicating that both approaches produced the same results.
The method named decodeD is shown in its entirety in Listing 5 .
static void decodeD(ArrayList input,ArrayList output){
JSONParser parser = new JSONParser();String temp = null;
Iterator<String>iterator = input.iterator();
while (iterator.hasNext()){temp = iterator.next();
try{//ParseException; must be caught or declared to be thrown.
output.add(parser.parse(temp));}catch(ParseException pex){
pex.printStackTrace();}//end catch
}//end while loop}//end decodeD
This method decodes a list of JSON strings into JSONObject objects using a parse method of the JSONParser class. This code is only slightly more complicated than the code shown earlierin Listing 2 that uses a parse method of the JSONValue class.
The additional complexity is due mainly to the fact that the parse method throws a checked exception named ParseException . Because it is a checked exception, it must either be caught or declared to bethrown by the method. I elected to catch it in this program and to simply call the printStackTrace method (inherited from the Throwable class) in the catch block. However, the ParseException class provides some other methods that can be called to elaborate on the nature of the error if desired.
Returning to the main method in Listing 4 , there is nothing more to do, so the last line in Listing 4 signals the end of the program.
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?