<< Chapter < Page Chapter >> Page >
Figure 1. Program output. 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 .

Decode and display using the JSONParser class

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.

Listing 4 . Decode and display using 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

The method named decodeD is shown in its entirety in Listing 5 .

Listing 5 . The method named decodeD. 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.

The end of the program

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.

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