Skip to content

Commit

Permalink
Merge pull request eugenp#14405 from tudormarc/tudor/jacksonjr4
Browse files Browse the repository at this point in the history
BAEL-6310 - updated indent
  • Loading branch information
vinipx authored Jul 19, 2023
2 parents 589f558 + 1c1639e commit 3da4812
Show file tree
Hide file tree
Showing 10 changed files with 126 additions and 119 deletions.

This file was deleted.

13 changes: 11 additions & 2 deletions jackson-jr/pom.xml → jackson-modules/jackson-jr/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,8 @@

<parent>
<groupId>com.baeldung</groupId>
<artifactId>parent-java</artifactId>
<artifactId>jackson-modules</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../parent-java</relativePath>
</parent>

<dependencies>
Expand All @@ -35,4 +34,14 @@

</dependencies>

<build>
<finalName>jackson-jr</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>

</project>
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
package com.baeldung.jacksonjr;

import com.fasterxml.jackson.jr.ob.api.ValueReader;
import com.fasterxml.jackson.jr.ob.impl.JSONReader;
import com.fasterxml.jackson.jr.private_.JsonParser;

import java.io.IOException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

import com.fasterxml.jackson.jr.ob.api.ValueReader;
import com.fasterxml.jackson.jr.ob.impl.JSONReader;
import com.fasterxml.jackson.jr.private_.JsonParser;

public class CustomDateDeserializer extends ValueReader {
private final static DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");

public CustomDateDeserializer () {
public CustomDateDeserializer() {
super(LocalDate.class);
}

@Override
public Object read (JSONReader jsonReader, JsonParser jsonParser) throws IOException {
public Object read(JSONReader jsonReader, JsonParser jsonParser) throws IOException {
return LocalDate.parse(jsonParser.getText(), dtf);
}
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
package com.baeldung.jacksonjr;

import java.io.IOException;
import java.time.LocalDate;

import com.fasterxml.jackson.jr.ob.api.ValueWriter;
import com.fasterxml.jackson.jr.ob.impl.JSONWriter;
import com.fasterxml.jackson.jr.private_.JsonGenerator;

import java.io.IOException;
import java.time.LocalDate;

public class CustomDateSerializer implements ValueWriter {
@Override
public void writeValue (JSONWriter jsonWriter, JsonGenerator jsonGenerator, Object o) throws IOException {
public void writeValue(JSONWriter jsonWriter, JsonGenerator jsonGenerator, Object o) throws IOException {
jsonGenerator.writeString(o.toString());
}

@Override
public Class<?> valueType () {
public Class<?> valueType() {
return LocalDate.class;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
package com.baeldung.jacksonjr;

import java.io.IOException;
import java.util.LinkedHashMap;

import com.fasterxml.jackson.jr.annotationsupport.JacksonAnnotationExtension;
import com.fasterxml.jackson.jr.ob.JSON;
import com.fasterxml.jackson.jr.ob.JacksonJrExtension;
import com.fasterxml.jackson.jr.ob.api.ExtensionContext;

public class JacksonJrFeatures {

public static String jsonObject() throws IOException {
return JSON.std.with(JSON.Feature.PRETTY_PRINT_OUTPUT)
.asString(new LinkedHashMap<String, Object>() {{
put("name", "John Doe");
put("age", 30);
}});
}

public static String jsonComposer() throws IOException {
return JSON.std.with(JSON.Feature.PRETTY_PRINT_OUTPUT)
.composeString()
.startObject()
.startArrayField("objectArray")
.startObject()
.put("name", "name1")
.put("age", 11)
.end()
.startObject()
.put("name", "name2")
.put("age", 12)
.end()
.end()
.startArrayField("array")
.add(1)
.add(2)
.add(3)
.end()
.startObjectField("object")
.put("name", "name3")
.put("age", 13)
.end()
.put("last", true)
.end()
.finish();
}

public static String objectSerialization(Person person) throws IOException {
return JSON.std.with(JSON.Feature.PRETTY_PRINT_OUTPUT)
.asString(person);
}

public static String objectAnnotationSerialization(Person person) throws IOException {
return JSON.builder()
.register(JacksonAnnotationExtension.std)
.build()
.with(JSON.Feature.PRETTY_PRINT_OUTPUT)
.asString(person);
}

public static String customObjectSerialization(Person person) throws IOException {
return JSON.builder()
.register(new JacksonJrExtension() {
@Override
protected void register(ExtensionContext extensionContext) {
extensionContext.insertProvider(new MyHandlerProvider());
}
})
.build()
.with(JSON.Feature.PRETTY_PRINT_OUTPUT)
.asString(person);
}

public static Person objectDeserialization(String json) throws IOException {
return JSON.std.with(JSON.Feature.PRETTY_PRINT_OUTPUT)
.beanFrom(Person.class, json);
}

public static Person customObjectDeserialization(String json) throws IOException {
return JSON.builder()
.register(new JacksonJrExtension() {
@Override
protected void register(ExtensionContext extensionContext) {
extensionContext.insertProvider(new MyHandlerProvider());
}
})
.build()
.with(JSON.Feature.PRETTY_PRINT_OUTPUT)
.beanFrom(Person.class, json);
}
}
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
package com.baeldung.jacksonjr;

import java.time.LocalDate;

import com.fasterxml.jackson.jr.ob.api.ReaderWriterProvider;
import com.fasterxml.jackson.jr.ob.api.ValueReader;
import com.fasterxml.jackson.jr.ob.api.ValueWriter;
import com.fasterxml.jackson.jr.ob.impl.JSONReader;
import com.fasterxml.jackson.jr.ob.impl.JSONWriter;

import java.time.LocalDate;

public class MyHandlerProvider extends ReaderWriterProvider {

@Override
public ValueWriter findValueWriter (JSONWriter writeContext, Class<?> type) {
public ValueWriter findValueWriter(JSONWriter writeContext, Class<?> type) {
if (type == LocalDate.class) {
return new CustomDateSerializer();
}
return null;
}

@Override
public ValueReader findValueReader (JSONReader readContext, Class<?> type) {
public ValueReader findValueReader(JSONReader readContext, Class<?> type) {
if (type.equals(LocalDate.class)) {
return new CustomDateDeserializer();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.baeldung.jacksonjr;

import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalDate;

import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;

@Data
@NoArgsConstructor
@AllArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package com.baeldung.jacksonjr;

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

import java.io.IOException;
import java.time.LocalDate;

import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;

public class JacksonJrFeaturesUnitTest {

Expand Down
1 change: 1 addition & 0 deletions jackson-modules/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
<module>jackson-core</module>
<module>jackson-custom-conversions</module>
<module>jackson-exceptions</module>
<module>jackson-jr</module>
</modules>

<dependencies>
Expand Down
1 change: 0 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -780,7 +780,6 @@
<module>custom-pmd</module>
<module>data-structures</module>
<module>ddd-contexts</module>
<module>jackson-jr</module>
<module>jackson-modules</module>
<module>jmh</module>
<module>deeplearning4j</module>
Expand Down

0 comments on commit 3da4812

Please sign in to comment.