Skip to content
This repository was archived by the owner on Jan 25, 2019. It is now read-only.

Commit d189aed

Browse files
committed
JSON-B example changed
Signed-off-by: David Kral <david.k.kral@oracle.com>
1 parent d456bad commit d189aed

1 file changed

Lines changed: 38 additions & 24 deletions

File tree

  • web/jsonb/jsonbbasics/src/main/java/javaeetutorial/jsonbmodel

web/jsonb/jsonbbasics/src/main/java/javaeetutorial/jsonbmodel/JsonbBean.java

Lines changed: 38 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)