Skip to content

Example of Serializacion in Spring Boot using Jackson dependency

Notifications You must be signed in to change notification settings

itqpleyva/SpringJsonSerialization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpringJsonSerialization

Example of Serializacion in Spring Boot using Jackson dependency

Main dependencies:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
 </dependency>

Creating the model:

  @Entity
  public class Dog {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Integer id;
    private String raza;
    private String name;
    
  //constructors, getters and setters
  }

Mapping, Serializing and Deserializing:

  @SpringBootApplication
  public class Main implements CommandLineRunner {

    public static void main(String[] args) {

      SpringApplication.run(Main.class, args);

    }

    @Override
    public void run(String... args) throws Exception {

      ObjectMapper objectMapper = new ObjectMapper(); // creating object mapper instance

      Dog dog = new Dog(1,"puddle", "Negrito");//creating new dog

      objectMapper.writeValue(new File("target/dog.json"), dog); // saving dos as json in dog.json file

      String doggie = objectMapper.writeValueAsString(dog);// generatin json string

      System.out.println("Get Dog json from Dog instance ----------- "+doggie);

      String json = "{\"id\" : 1, \"raza\" : \"puddle\", \"name\" : \"Negrito\" }"; // creating a json

      Dog dog1 = objectMapper.readValue(json, Dog.class); // turning json into a Dog instance

      Dog dog2 = objectMapper.readValue(new File("target/dog.json"), Dog.class); // turnig json from a json file into a Dog instance

      System.out.println("Get Dog instace from json -----------"+dog1);

      System.out.println("Get Dog instace from json file ----------- "+dog2);

      String json1 = "[{\"id\" : 1, \"raza\" : \"puddle\", \"name\" : \"Negrito\" },{\"id\" : 2, \"raza\" : \"puddle\", \"name\" : \"Negrito\" }]";

      List<Dog> listDog = objectMapper.readValue(json1, new TypeReference<List<Dog>>(){});// turning json into List of dogs

      System.out.println("Get Dog list from json ----------- "+listDog);

      Map<String, Object> mapDog = objectMapper.readValue(json, new TypeReference<Map<String, Object>>(){});// turning json into List of dogs

      System.out.println("Get Dog Map from json ----------- "+mapDog);

      //using custom serializer

      ObjectMapper mapper = new ObjectMapper();
      SimpleModule module = 
        new SimpleModule("CustomDogSerializer", new Version(1, 0, 0, null, null, null));
      module.addSerializer(Dog.class, new CustomDogSerializer());
      mapper.registerModule(module);
      Dog dog3 = new Dog(4,"puddle", "Chucho");
      String dogJson = mapper.writeValueAsString(dog3);

      System.out.println("Get dog json from custom serializer:--------------"+dogJson);
    }

  }

Creating custom serializer:

   public class CustomDogSerializer extends StdSerializer<Dog> {

      public CustomDogSerializer() {
          this(null);
      }

      public CustomDogSerializer(Class<Dog> t) {
          super(t);
      }
    @Override
    public void serialize(Dog dog, JsonGenerator jsonGenerator, SerializerProvider serializer) throws IOException {

            jsonGenerator.writeStartObject();
            jsonGenerator.writeStringField("dog_raza", dog.getRaza());
            jsonGenerator.writeEndObject();

    }       
  }

Console Output:

Get Dog json from Dog instance ----------- {"id":1,"raza":"puddle","name":"Negrito"}
Get Dog instace from json -----------Dog [id=1, raza=puddle, name=Negrito]
Get Dog instace from json file ----------- Dog [id=1, raza=puddle, name=Negrito]
Get Dog list from json ----------- [Dog [id=1, raza=puddle, name=Negrito], Dog [id=2, raza=puddle, name=Negrito]]
Get Dog Map from json ----------- {id=1, raza=puddle, name=Negrito}
Get dog json from custom serializer:--------------{"dog_raza":"puddle"}

About

Example of Serializacion in Spring Boot using Jackson dependency

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages