org.rgiskard.jackson.ModuleJsonSerializer.java Source code

Java tutorial

Introduction

Here is the source code for org.rgiskard.jackson.ModuleJsonSerializer.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package org.rgiskard.jackson;

import org.rgiskard.model.Result;
import org.rgiskard.model.Module;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;

/**
 * Custom serialiser used to demonstrate the serialisation of only certain
 * properties of an object
 * 
 * @author rgiskard
 */
public class ModuleJsonSerializer extends JsonSerializer<Module> {

    @Override
    public void serialize(Module module, JsonGenerator jg, SerializerProvider sp)
            throws IOException, JsonProcessingException {
        jg.writeStartObject();
        jg.writeStringField("code", module.getCode());
        jg.writeFieldName("results");
        jg.writeStartArray();
        for (Result result : module.getResults()) {
            jg.writeStartObject();
            jg.writeNumberField("grade", result.getGrade());
            jg.writeEndObject();
        }
        jg.writeEndArray();
        jg.writeEndObject();
    }

    @Override
    public Class<Module> handledType() {
        return Module.class;
    }

}