@@ -97,48 +97,62 @@ public void setJsonTextArea(String jsonTextArea) {
9797 /* Action method for the form in index.xhtml.
9898 * Creates Person object and creates formatted JSON */
9999 public String createJson () {
100- Person person = new Person (name , profession , new ArrayList <>());
101- person .getPhoneNumbers ().add (new PhoneNumber (phoneType1 , number1 ));
102- person .getPhoneNumbers ().add (new PhoneNumber (phoneType2 , number2 ));
100+ Person person = new Person (this . name , this . profession , new ArrayList <>());
101+ person .getPhoneNumbers ().add (new PhoneNumber (this . phoneType1 , this . number1 ));
102+ person .getPhoneNumbers ().add (new PhoneNumber (this . phoneType2 , this . number2 ));
103103
104- /* JSON-B config and Jsonb instance creating */
104+ /* JSON-B config and Jsonb instance creation */
105105 JsonbConfig config = new JsonbConfig ()
106106 .withFormatting (true );
107107 Jsonb jsonb = JsonbBuilder .create (config );
108108
109- /* Deserialization to JSON */
110- jsonTextArea = jsonb .toJson (person );
109+ /* Serialization to JSON */
110+ this . jsonTextArea = jsonb .toJson (person );
111111
112112 /* JSF navigation */
113113 return "jsongenerated" ;
114114 }
115115
116116 /* Action method for form in jsongenerated.xhtml.
117- * Parses JSON data from the textarea to Person object
117+ * Deserialize JSON from the textarea to Person object
118118 * and fills these data to form. */
119119 public String parseJson () {
120- /* JSON-B config and Jsonb instance creating */
121- JsonbConfig config = new JsonbConfig ()
122- .withFormatting (true );
123- Jsonb jsonb = JsonbBuilder .create (config );
120+ clearFields ();
124121
125- /* Deserialization of JSON */
126- Person person = jsonb .fromJson (jsonTextArea , Person .class );
127- name = person .getName ();
128- profession = person .getProfession ();
129- PhoneNumber number = person .getPhoneNumbers ().get (0 );
130- if (number != null ) {
131- number1 = number .getNumber ();
132- phoneType1 = number .getType ();
133- }
134- number = person .getPhoneNumbers ().get (1 );
135- if (number != null ) {
136- number2 = number .getNumber ();
137- phoneType2 = number .getType ();
122+ /* JSON-B config and Jsonb instance creation */
123+ Jsonb jsonb = JsonbBuilder .create (new JsonbConfig ());
124+
125+ /* Deserialization of JSON to Object */
126+ Person person = jsonb .fromJson (this .jsonTextArea , Person .class );
127+ this .name = person .getName ();
128+ this .profession = person .getProfession ();
129+ if (person .getPhoneNumbers () != null ) {
130+ int index = 0 ;
131+ for (PhoneNumber number : person .getPhoneNumbers ()) {
132+ if (index == 0 ) {
133+ this .number1 = number .getNumber ();
134+ this .phoneType1 = number .getType ();
135+ } else if (index == 1 ) {
136+ this .number2 = number .getNumber ();
137+ this .phoneType2 = number .getType ();
138+ } else {
139+ break ;
140+ }
141+ index ++;
142+ }
138143 }
139144
140145 /* JSF navigation */
141146 return "index" ;
142147 }
143148
149+ private void clearFields () {
150+ this .name = "" ;
151+ this .profession = "" ;
152+ this .number1 = "" ;
153+ this .phoneType1 = "" ;
154+ this .number2 = "" ;
155+ this .phoneType2 = "" ;
156+ }
157+
144158}
0 commit comments