Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
5cfc34399f
|
@ -30,3 +30,5 @@
|
||||||
- [The Difference Between map() and flatMap()](http://www.baeldung.com/java-difference-map-and-flatmap)
|
- [The Difference Between map() and flatMap()](http://www.baeldung.com/java-difference-map-and-flatmap)
|
||||||
- [Merging Streams in Java](http://www.baeldung.com/java-merge-streams)
|
- [Merging Streams in Java](http://www.baeldung.com/java-merge-streams)
|
||||||
- [“Stream has already been operated upon or closed” Exception in Java](http://www.baeldung.com/java-stream-operated-upon-or-closed-exception)
|
- [“Stream has already been operated upon or closed” Exception in Java](http://www.baeldung.com/java-stream-operated-upon-or-closed-exception)
|
||||||
|
- [Display All Time Zones With GMT And UTC in Java](http://www.baeldung.com/java-time-zones)
|
||||||
|
- [Copy a File with Java](http://www.baeldung.com/java-copy-file)
|
||||||
|
|
|
@ -118,4 +118,5 @@
|
||||||
- [A Guide to the Static Keyword in Java](http://www.baeldung.com/java-static)
|
- [A Guide to the Static Keyword in Java](http://www.baeldung.com/java-static)
|
||||||
- [Initializing Arrays in Java](http://www.baeldung.com/java-initialize-array)
|
- [Initializing Arrays in Java](http://www.baeldung.com/java-initialize-array)
|
||||||
- [Guide to Java String Pool](http://www.baeldung.com/java-string-pool)
|
- [Guide to Java String Pool](http://www.baeldung.com/java-string-pool)
|
||||||
|
- [Copy a File with Java](http://www.baeldung.com/java-copy-file)
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,8 @@ public class StringFormatterExampleTests {
|
||||||
public void givenString_whenFormatSpecifierForCalendar_thenGotExpected() {
|
public void givenString_whenFormatSpecifierForCalendar_thenGotExpected() {
|
||||||
//Syntax of Format Specifiers for Date/Time Representation
|
//Syntax of Format Specifiers for Date/Time Representation
|
||||||
Calendar c = new GregorianCalendar(2017, 11, 10);
|
Calendar c = new GregorianCalendar(2017, 11, 10);
|
||||||
String s = String.format("The date is: %1$tm %1$te,%1$tY", c);
|
String s = String.format("The date is: %tm %1$te,%1$tY", c);
|
||||||
|
|
||||||
|
|
||||||
assertEquals("The date is: 12 10,2017", s);
|
assertEquals("The date is: 12 10,2017", s);
|
||||||
}
|
}
|
||||||
|
@ -84,7 +85,7 @@ public class StringFormatterExampleTests {
|
||||||
public void givenString_whenLineSeparatorConversion_thenConvertedString() {
|
public void givenString_whenLineSeparatorConversion_thenConvertedString() {
|
||||||
//Line Separator Conversion
|
//Line Separator Conversion
|
||||||
String s = String.format("First Line %nSecond Line");
|
String s = String.format("First Line %nSecond Line");
|
||||||
assertEquals("First Line \n"
|
assertEquals("First Line " + System.getProperty("line.separator")
|
||||||
+ "Second Line", s);
|
+ "Second Line", s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,10 +115,10 @@ public class StringFormatterExampleTests {
|
||||||
public void givenString_whenSpecifyArgumentIndex_thenGotExpected() {
|
public void givenString_whenSpecifyArgumentIndex_thenGotExpected() {
|
||||||
Calendar c = new GregorianCalendar(2017, 11, 10);
|
Calendar c = new GregorianCalendar(2017, 11, 10);
|
||||||
//Argument_Index
|
//Argument_Index
|
||||||
String s = String.format("The date is: %1$tm %1$te,%1$tY", c);
|
String s = String.format("The date is: %tm %1$te,%1$tY", c);
|
||||||
assertEquals("The date is: 12 10,2017", s);
|
assertEquals("The date is: 12 10,2017", s);
|
||||||
|
|
||||||
s = String.format("The date is: %1$tm %<te,%<tY", c);
|
s = String.format("The date is: %tm %<te,%<tY", c);
|
||||||
assertEquals("The date is: 12 10,2017", s);
|
assertEquals("The date is: 12 10,2017", s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,8 +127,7 @@ public class StringFormatterExampleTests {
|
||||||
//Using String Formatter with Appendable
|
//Using String Formatter with Appendable
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
Formatter formatter = new Formatter(sb);
|
Formatter formatter = new Formatter(sb);
|
||||||
formatter.format("I am writting to a %1$s Instance.", sb.getClass());
|
formatter.format("I am writting to a %s Instance.", sb.getClass());
|
||||||
|
|
||||||
assertEquals("I am writting to a class java.lang.StringBuilder Instance.", sb.toString());
|
assertEquals("I am writting to a class java.lang.StringBuilder Instance.", sb.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -98,9 +98,9 @@
|
||||||
<jsonb-api.version>1.0</jsonb-api.version>
|
<jsonb-api.version>1.0</jsonb-api.version>
|
||||||
<johnzon.version>1.1.3</johnzon.version>
|
<johnzon.version>1.1.3</johnzon.version>
|
||||||
<geronimo-json_1.1_spec.version>1.0</geronimo-json_1.1_spec.version>
|
<geronimo-json_1.1_spec.version>1.0</geronimo-json_1.1_spec.version>
|
||||||
<yasson.version>1.0</yasson.version>
|
<yasson.version>1.0.1</yasson.version>
|
||||||
<javax.json.version>1.1.2</javax.json.version>
|
<javax.json.version>1.1.2</javax.json.version>
|
||||||
<commons-collections4.version>4.1</commons-collections4.version>
|
<commons-collections4.version>4.1</commons-collections4.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
</project>
|
</project>
|
|
@ -0,0 +1,26 @@
|
||||||
|
package com.baeldung.adapter;
|
||||||
|
|
||||||
|
import javax.json.Json;
|
||||||
|
import javax.json.JsonObject;
|
||||||
|
import javax.json.bind.adapter.JsonbAdapter;
|
||||||
|
|
||||||
|
import com.baeldung.jsonb.Person;
|
||||||
|
|
||||||
|
public class PersonAdapter implements JsonbAdapter<Person, JsonObject> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JsonObject adaptToJson(Person p) throws Exception {
|
||||||
|
return Json.createObjectBuilder()
|
||||||
|
.add("id", p.getId())
|
||||||
|
.add("name", p.getName())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Person adaptFromJson(JsonObject adapted) throws Exception {
|
||||||
|
Person person = new Person();
|
||||||
|
person.setId(adapted.getInt("id"));
|
||||||
|
person.setName(adapted.getString("name"));
|
||||||
|
return person;
|
||||||
|
}
|
||||||
|
}
|
|
@ -22,10 +22,10 @@ public class Person {
|
||||||
private BigDecimal salary;
|
private BigDecimal salary;
|
||||||
|
|
||||||
public Person() {
|
public Person() {
|
||||||
|
this(0, "", "", 0, LocalDate.now(), new BigDecimal(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Person(int id, String name, String email, int age, LocalDate registeredDate, BigDecimal salary) {
|
public Person(int id, String name, String email, int age, LocalDate registeredDate, BigDecimal salary) {
|
||||||
super();
|
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.email = email;
|
this.email = email;
|
||||||
|
|
|
@ -17,6 +17,8 @@ import javax.json.bind.config.PropertyOrderStrategy;
|
||||||
import org.apache.commons.collections4.ListUtils;
|
import org.apache.commons.collections4.ListUtils;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import com.baeldung.adapter.PersonAdapter;
|
||||||
|
|
||||||
public class JsonbTest {
|
public class JsonbTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -155,4 +157,32 @@ public class JsonbTest {
|
||||||
.equals(person));
|
.equals(person));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenPersonObject_whenSerializeWithAdapter_thenGetPersonJson() {
|
||||||
|
JsonbConfig config = new JsonbConfig().withAdapters(new PersonAdapter());
|
||||||
|
Jsonb jsonb = JsonbBuilder.create(config);
|
||||||
|
Person person = new Person(1, "Jhon", "jhon@test.com", 0, LocalDate.of(2019, 9, 7), BigDecimal.valueOf(1000.0));// new Person(1, "Jhon");
|
||||||
|
String jsonPerson = jsonb.toJson(person);
|
||||||
|
// @formatter:off
|
||||||
|
String jsonExpected =
|
||||||
|
"{\"id\":1," +
|
||||||
|
"\"name\":\"Jhon\"}";
|
||||||
|
// @formatter:on
|
||||||
|
assertTrue(jsonExpected.equals(jsonPerson));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenPersonJson_whenDeserializeWithAdapter_thenGetPersonObject() {
|
||||||
|
JsonbConfig config = new JsonbConfig().withAdapters(new PersonAdapter());
|
||||||
|
Jsonb jsonb = JsonbBuilder.create(config);
|
||||||
|
Person person = new Person(1, "Jhon", "jhon@test.com", 0, LocalDate.of(2019, 9, 7), BigDecimal.valueOf(1000.0));// new Person(1, "Jhon");
|
||||||
|
// @formatter:off
|
||||||
|
String jsonPerson =
|
||||||
|
"{\"id\":1," +
|
||||||
|
"\"name\":\"Jhon\"}";
|
||||||
|
// @formatter:on
|
||||||
|
assertTrue(jsonb.fromJson(jsonPerson, Person.class)
|
||||||
|
.equals(person));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue