Example usage for com.fasterxml.jackson.core JsonGenerator writeNumberField

List of usage examples for com.fasterxml.jackson.core JsonGenerator writeNumberField

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonGenerator writeNumberField.

Prototype

public final void writeNumberField(String fieldName, BigDecimal value)
        throws IOException, JsonGenerationException 

Source Link

Document

Convenience method for outputting a field entry ("member") that has the specified numeric value.

Usage

From source file:net.opentsdb.tree.Tree.java

/**
 * Converts the object to a JSON byte array, necessary for CAS calls and to
 * keep redundant data down//from  w ww .j a  va 2s. c  o m
 * @return A byte array with the serialized tree
 */
private byte[] toStorageJson() {
    // TODO - precalc how much memory to grab
    final ByteArrayOutputStream output = new ByteArrayOutputStream();
    try {
        final JsonGenerator json = JSON.getFactory().createGenerator(output);

        json.writeStartObject();

        // we only need to write a small amount of information
        //json.writeNumberField("treeId", tree_id);
        json.writeStringField("name", name);
        json.writeStringField("description", description);
        json.writeStringField("notes", notes);
        json.writeBooleanField("strictMatch", strict_match);
        json.writeNumberField("created", created);
        json.writeBooleanField("enabled", enabled);
        json.writeBooleanField("storeFailures", store_failures);
        json.writeEndObject();
        json.close();

        // TODO zero copy?
        return output.toByteArray();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

From source file:com.google.openrtb.json.OpenRtbJsonWriter.java

protected void writeBidResponseFields(BidResponse resp, JsonGenerator gen) throws IOException {
    gen.writeStringField("id", resp.getId());
    if (resp.getSeatbidCount() != 0) {
        gen.writeArrayFieldStart("seatbid");
        for (SeatBid seatbid : resp.getSeatbidList()) {
            writeSeatBid(seatbid, gen);//ww w.  j av a2 s  .  c o m
        }
        gen.writeEndArray();
    }
    if (resp.hasBidid()) {
        gen.writeStringField("bidid", resp.getBidid());
    }
    if (resp.hasCur()) {
        gen.writeStringField("cur", resp.getCur());
    }
    if (resp.hasCustomdata()) {
        gen.writeStringField("customdata", resp.getCustomdata());
    }
    if (resp.hasNbr()) {
        gen.writeNumberField("nbr", resp.getNbr().getNumber());
    }
}

From source file:com.baidubce.services.bos.BosClient.java

/**
 * Completes a multipart upload by assembling previously uploaded parts.
 *
 * @param request The CompleteMultipartUploadRequest object that specifies all the parameters of this operation.
 * @return A CompleteMultipartUploadResponse from Bos containing the ETag for
 *     the new object composed of the individual parts.
 */// w  w  w .j av  a  2s.  c  om
public CompleteMultipartUploadResponse completeMultipartUpload(CompleteMultipartUploadRequest request) {
    checkNotNull(request, "request should not be null.");

    InternalRequest internalRequest = this.createRequest(request, HttpMethodName.POST);
    internalRequest.addParameter("uploadId", request.getUploadId());

    ObjectMetadata metadata = request.getObjectMetadata();
    if (metadata != null) {
        populateRequestMetadata(internalRequest, metadata);
    }

    byte[] json = null;
    List<PartETag> partETags = request.getPartETags();
    StringWriter writer = new StringWriter();
    try {
        JsonGenerator jsonGenerator = JsonUtils.jsonGeneratorOf(writer);
        jsonGenerator.writeStartObject();
        jsonGenerator.writeArrayFieldStart("parts");
        for (PartETag partETag : partETags) {
            jsonGenerator.writeStartObject();
            jsonGenerator.writeNumberField("partNumber", partETag.getPartNumber());
            jsonGenerator.writeStringField("eTag", partETag.getETag());
            jsonGenerator.writeEndObject();
        }
        jsonGenerator.writeEndArray();
        jsonGenerator.writeEndObject();
        jsonGenerator.close();
    } catch (IOException e) {
        throw new BceClientException("Fail to generate json", e);
    }
    try {
        json = writer.toString().getBytes(DEFAULT_ENCODING);
    } catch (UnsupportedEncodingException e) {
        throw new BceClientException("Fail to get UTF-8 bytes", e);
    }

    internalRequest.addHeader(Headers.CONTENT_LENGTH, String.valueOf(json.length));
    internalRequest.addHeader(Headers.CONTENT_TYPE, "application/json");
    internalRequest.setContent(RestartableInputStream.wrap(json));

    CompleteMultipartUploadResponse response = this.invokeHttpClient(internalRequest,
            CompleteMultipartUploadResponse.class);
    response.setBucketName(request.getBucketName());
    return response;
}

From source file:com.google.openrtb.json.OpenRtbJsonWriter.java

protected void writeDeviceFields(Device device, JsonGenerator gen) throws IOException {
    if (device.hasUa()) {
        gen.writeStringField("ua", device.getUa());
    }/*  w w w . j a  v a  2s. c o m*/
    if (device.hasGeo()) {
        gen.writeFieldName("geo");
        writeGeo(device.getGeo(), gen);
    }
    if (device.hasDnt()) {
        writeIntBoolField("dnt", device.getDnt(), gen);
    }
    if (device.hasLmt()) {
        writeIntBoolField("lmt", device.getLmt(), gen);
    }
    if (device.hasIp()) {
        gen.writeStringField("ip", device.getIp());
    }
    if (device.hasIpv6()) {
        gen.writeStringField("ipv6", device.getIpv6());
    }
    if (device.hasDevicetype()) {
        gen.writeNumberField("devicetype", device.getDevicetype().getNumber());
    }
    if (device.hasMake()) {
        gen.writeStringField("make", device.getMake());
    }
    if (device.hasModel()) {
        gen.writeStringField("model", device.getModel());
    }
    if (device.hasOs()) {
        gen.writeStringField("os", device.getOs());
    }
    if (device.hasOsv()) {
        gen.writeStringField("osv", device.getOsv());
    }
    if (device.hasHwv()) {
        gen.writeStringField("hwv", device.getHwv());
    }
    if (device.hasW()) {
        gen.writeNumberField("w", device.getW());
    }
    if (device.hasH()) {
        gen.writeNumberField("h", device.getH());
    }
    if (device.hasPpi()) {
        gen.writeNumberField("ppi", device.getPpi());
    }
    if (device.hasPxratio()) {
        gen.writeNumberField("pxratio", device.getPxratio());
    }
    if (device.hasJs()) {
        writeIntBoolField("js", device.getJs(), gen);
    }
    if (device.hasFlashver()) {
        gen.writeStringField("flashver", device.getFlashver());
    }
    if (device.hasLanguage()) {
        gen.writeStringField("language", device.getLanguage());
    }
    if (device.hasCarrier()) {
        gen.writeStringField("carrier", device.getCarrier());
    }
    if (device.hasConnectiontype()) {
        gen.writeNumberField("connectiontype", device.getConnectiontype().getNumber());
    }
    if (device.hasIfa()) {
        gen.writeStringField("ifa", device.getIfa());
    }
    if (device.hasDidsha1()) {
        gen.writeStringField("didsha1", device.getDidsha1());
    }
    if (device.hasDidmd5()) {
        gen.writeStringField("didmd5", device.getDidmd5());
    }
    if (device.hasDpidsha1()) {
        gen.writeStringField("dpidsha1", device.getDpidsha1());
    }
    if (device.hasDpidmd5()) {
        gen.writeStringField("dpidmd5", device.getDpidmd5());
    }
    if (device.hasMacsha1()) {
        gen.writeStringField("macsha1", device.getMacsha1());
    }
    if (device.hasMacmd5()) {
        gen.writeStringField("macmd5", device.getMacmd5());
    }
    if (device.hasGeofetch()) {
        writeIntBoolField("geofetch", device.getGeofetch(), gen);
    }
}

From source file:net.solarnetwork.web.support.JSONView.java

private void writeJsonValue(JsonGenerator json, String key, Object val, PropertyEditorRegistrar registrar)
        throws JsonGenerationException, IOException {
    if (val instanceof Collection<?> || (val != null && val.getClass().isArray())) {
        Collection<?> col;//from   ww  w . j  a va  2s  .com
        if (val instanceof Collection<?>) {
            col = (Collection<?>) val;
        } else if (!val.getClass().getComponentType().isPrimitive()) {
            col = Arrays.asList((Object[]) val);
        } else {
            // damn you, primitives
            col = getPrimitiveCollection(val);
        }
        if (key != null) {
            json.writeFieldName(key);
        }
        json.writeStartArray();
        for (Object colObj : col) {
            writeJsonValue(json, null, colObj, registrar);
        }

        json.writeEndArray();
    } else if (val instanceof Map<?, ?>) {
        if (key != null) {
            json.writeFieldName(key);
        }
        json.writeStartObject();
        for (Map.Entry<?, ?> me : ((Map<?, ?>) val).entrySet()) {
            Object propName = me.getKey();
            if (propName == null) {
                continue;
            }
            writeJsonValue(json, propName.toString(), me.getValue(), registrar);
        }
        json.writeEndObject();
    } else if (val instanceof Double) {
        if (key == null) {
            json.writeNumber((Double) val);
        } else {
            json.writeNumberField(key, (Double) val);
        }
    } else if (val instanceof Integer) {
        if (key == null) {
            json.writeNumber((Integer) val);
        } else {
            json.writeNumberField(key, (Integer) val);
        }
    } else if (val instanceof Short) {
        if (key == null) {
            json.writeNumber(((Short) val).intValue());
        } else {
            json.writeNumberField(key, ((Short) val).intValue());
        }
    } else if (val instanceof Float) {
        if (key == null) {
            json.writeNumber((Float) val);
        } else {
            json.writeNumberField(key, (Float) val);
        }
    } else if (val instanceof Long) {
        if (key == null) {
            json.writeNumber((Long) val);
        } else {
            json.writeNumberField(key, (Long) val);
        }
    } else if (val instanceof Boolean) {
        if (key == null) {
            json.writeBoolean((Boolean) val);
        } else {
            json.writeBooleanField(key, (Boolean) val);
        }
    } else if (val instanceof String) {
        if (key == null) {
            json.writeString((String) val);
        } else {
            json.writeStringField(key, (String) val);
        }
    } else {
        // create a JSON object from bean properties
        if (getPropertySerializerRegistrar() != null && val != null) {
            // try whole-bean serialization first
            Object o = getPropertySerializerRegistrar().serializeProperty(key, val.getClass(), val, val);
            if (o != val) {
                if (o != null) {
                    writeJsonValue(json, key, o, registrar);
                }
                return;
            }
        }
        generateJavaBeanObject(json, key, val, registrar);
    }
}

From source file:org.commonjava.maven.atlas.graph.jackson.ProjectRelationshipSerializer.java

@SuppressWarnings("incomplete-switch")
@Override//from   w  w  w .jav a  2 s.  c o m
public void serialize(final T value, final JsonGenerator gen, final SerializerProvider provider)
        throws IOException, JsonGenerationException {
    gen.writeStartObject();
    gen.writeStringField(RELATIONSHIP_TYPE, value.getType().name());
    gen.writeStringField(POM_LOCATION_URI, value.getPomLocation().toString());
    gen.writeBooleanField(INHERITED, value.isInherited());

    Set<URI> sources = value.getSources();
    if (sources != null) {
        for (Iterator<URI> iter = sources.iterator(); iter.hasNext();) {
            if (iter.next() == null) {
                iter.remove();
            }
        }
        if (!sources.isEmpty()) {
            gen.writeArrayFieldStart(SOURCE_URIS);
            for (URI uri : sources) {
                if (uri == null) {
                    continue;
                }
                gen.writeString(uri.toString());
            }
            gen.writeEndArray();
        }
    }
    provider.defaultSerializeField(DECLARING_REF, value.getDeclaring(), gen);
    provider.defaultSerializeField(TARGET_REF, value.getTarget(), gen);

    switch (value.getType()) {
    case BOM:
        gen.writeBooleanField(MIXIN, value.isMixin());
        break;
    case DEPENDENCY: {
        gen.writeStringField(SCOPE, ((DependencyRelationship) value).getScope().realName());
        gen.writeBooleanField(MANAGED, value.isManaged());
        gen.writeBooleanField(OPTIONAL, ((DependencyRelationship) value).isOptional());
        break;
    }
    case PLUGIN_DEP: {
        provider.defaultSerializeField(PLUGIN_REF, ((PluginDependencyRelationship) value).getPlugin(), gen);
        gen.writeBooleanField(MANAGED, value.isManaged());
        break;
    }
    case PLUGIN: {

        gen.writeBooleanField(MANAGED, value.isManaged());
        gen.writeBooleanField(REPORTING, ((PluginRelationship) value).isReporting());
        break;
    }
    }

    gen.writeNumberField(INDEX, value.getIndex());
    gen.writeEndObject();
}

From source file:de.escalon.hypermedia.spring.hydra.PagedResourcesSerializer.java

@Override
public void serialize(PagedResources pagedResources, JsonGenerator jgen, SerializerProvider serializerProvider)
        throws IOException {

    final SerializationConfig config = serializerProvider.getConfig();
    JavaType javaType = config.constructType(pagedResources.getClass());

    JsonSerializer<Object> serializer = BeanSerializerFactory.instance.createSerializer(serializerProvider,
            javaType);//from w w w .ja v a 2 s.  com

    // replicate pretty much everything from JacksonHydraSerializer
    // since we must reorganize the internals of pagedResources to get a hydra collection
    // with partial page view, we have to serialize pagedResources with an
    // unwrapping serializer
    Deque<LdContext> contextStack = (Deque<LdContext>) serializerProvider.getAttribute(KEY_LD_CONTEXT);
    if (contextStack == null) {
        contextStack = new ArrayDeque<LdContext>();
        serializerProvider.setAttribute(KEY_LD_CONTEXT, contextStack);
    }

    // TODO: filter next/previous/first/last from link list - maybe create new PagedResources without them?
    List<Link> links = pagedResources.getLinks();
    List<Link> filteredLinks = new ArrayList<Link>();
    for (Link link : links) {
        String rel = link.getRel();
        if (navigationRels.contains(rel)) {
            continue;
        } else {
            filteredLinks.add(link);
        }
    }

    PagedResources toRender = new PagedResources(pagedResources.getContent(), pagedResources.getMetadata(),
            filteredLinks);

    jgen.writeStartObject();

    serializeContext(toRender, jgen, serializerProvider, contextStack);

    jgen.writeStringField(JsonLdKeywords.AT_TYPE, "hydra:Collection");

    // serialize with PagedResourcesMixin
    serializer.unwrappingSerializer(NameTransformer.NOP).serialize(toRender, jgen, serializerProvider);

    PagedResources.PageMetadata metadata = pagedResources.getMetadata();
    jgen.writeNumberField("hydra:totalItems", metadata.getTotalElements());

    // begin hydra:view
    jgen.writeObjectFieldStart("hydra:view");
    jgen.writeStringField(JsonLdKeywords.AT_TYPE, "hydra:PartialCollectionView");
    writeRelLink(pagedResources, jgen, Link.REL_NEXT);
    writeRelLink(pagedResources, jgen, "previous");
    // must also translate prev to its synonym previous
    writeRelLink(pagedResources, jgen, Link.REL_PREVIOUS, "previous");
    writeRelLink(pagedResources, jgen, Link.REL_FIRST);
    writeRelLink(pagedResources, jgen, Link.REL_LAST);
    jgen.writeEndObject();
    // end hydra:view

    jgen.writeEndObject();

    contextStack = (Deque<LdContext>) serializerProvider.getAttribute(KEY_LD_CONTEXT);
    if (!contextStack.isEmpty()) {
        contextStack.pop();
    }

}

From source file:com.google.openrtb.json.OpenRtbJsonWriter.java

protected void writeBidRequestFields(BidRequest req, JsonGenerator gen) throws IOException {
    gen.writeStringField("id", req.getId());
    if (checkRequired(req.getImpCount())) {
        gen.writeArrayFieldStart("imp");
        for (Imp imp : req.getImpList()) {
            writeImp(imp, gen);//from   www  .ja va  2  s  . c o  m
        }
        gen.writeEndArray();
    }
    switch (req.getDistributionchannelOneofCase()) {
    case SITE:
        gen.writeFieldName("site");
        writeSite(req.getSite(), gen);
        break;
    case APP:
        gen.writeFieldName("app");
        writeApp(req.getApp(), gen);
        break;
    case DISTRIBUTIONCHANNELONEOF_NOT_SET:
        checkRequired(false);
    }
    if (req.hasDevice()) {
        gen.writeFieldName("device");
        writeDevice(req.getDevice(), gen);
    }
    if (req.hasUser()) {
        gen.writeFieldName("user");
        writeUser(req.getUser(), gen);
    }
    if (req.hasTest()) {
        writeIntBoolField("test", req.getTest(), gen);
    }
    if (req.hasAt()) {
        gen.writeNumberField("at", req.getAt().getNumber());
    }
    if (req.hasTmax()) {
        gen.writeNumberField("tmax", req.getTmax());
    }
    writeStrings("wseat", req.getWseatList(), gen);
    if (req.hasAllimps()) {
        writeIntBoolField("allimps", req.getAllimps(), gen);
    }
    writeStrings("cur", req.getCurList(), gen);
    writeContentCategories("bcat", req.getBcatList(), gen);
    writeStrings("badv", req.getBadvList(), gen);
    if (req.hasRegs()) {
        gen.writeFieldName("regs");
        writeRegs(req.getRegs(), gen);
    }
    writeStrings("bapp", req.getBappList(), gen);
}

From source file:com.google.openrtb.json.OpenRtbJsonWriter.java

protected void writeImpFields(Imp imp, JsonGenerator gen) throws IOException {
    gen.writeStringField("id", imp.getId());
    if (imp.hasBanner()) {
        gen.writeFieldName("banner");
        writeBanner(imp.getBanner(), gen);
    }/*  w  ww . j a v  a2s .  co m*/
    if (imp.hasVideo()) {
        gen.writeFieldName("video");
        writeVideo(imp.getVideo(), gen);
    }
    if (imp.hasAudio()) {
        gen.writeFieldName("audio");
        writeAudio(imp.getAudio(), gen);
    }
    if (imp.hasNative()) {
        gen.writeFieldName("native");
        writeNative(imp.getNative(), gen);
    }
    if (imp.hasDisplaymanager()) {
        gen.writeStringField("displaymanager", imp.getDisplaymanager());
    }
    if (imp.hasDisplaymanagerver()) {
        gen.writeStringField("displaymanagerver", imp.getDisplaymanagerver());
    }
    if (imp.hasInstl()) {
        writeIntBoolField("instl", imp.getInstl(), gen);
    }
    if (imp.hasTagid()) {
        gen.writeStringField("tagid", imp.getTagid());
    }
    if (imp.hasBidfloor()) {
        gen.writeNumberField("bidfloor", imp.getBidfloor());
    }
    if (imp.hasBidfloorcur()) {
        gen.writeStringField("bidfloorcur", imp.getBidfloorcur());
    }
    if (imp.hasSecure()) {
        writeIntBoolField("secure", imp.getSecure(), gen);
    }
    writeStrings("iframebuster", imp.getIframebusterList(), gen);
    if (imp.hasPmp()) {
        gen.writeFieldName("pmp");
        writePmp(imp.getPmp(), gen);
    }
    if (imp.hasClickbrowser()) {
        gen.writeBooleanField("clickbrowser", imp.getClickbrowser());
    }
    if (imp.hasExp()) {
        gen.writeNumberField("exp", imp.getExp());
    }
}

From source file:org.pentaho.pdi.engine.serializers.DataEventSerializer.java

public DataEventSerializer() {
    super(DataEvent.class);

    SimpleModule module = new SimpleModule();
    module.addSerializer(DataEvent.class, new JsonSerializer<DataEvent>() {
        @Override/*w  w w. j  av a2  s . c  om*/
        public void serialize(DataEvent dataEvent, JsonGenerator jsonGenerator,
                SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
            jsonGenerator.writeStartObject();
            Rows rows = (Rows) dataEvent.getData();
            jsonGenerator.writeStringField("model-id", dataEvent.getSource().getId());
            jsonGenerator.writeStringField("type", rows.getType().toString());
            jsonGenerator.writeStringField("state", rows.getState().toString());

            jsonGenerator.writeArrayFieldStart("rows");
            for (Row row : rows) {
                jsonGenerator.writeStartObject();
                jsonGenerator.writeArrayFieldStart("names");
                for (String name : row.getColumnNames()) {
                    jsonGenerator.writeString(name);
                }
                jsonGenerator.writeEndArray();

                jsonGenerator.writeArrayFieldStart("objects");
                for (Object obj : row.getObjects().get()) {
                    jsonGenerator.writeStartObject();
                    if (obj == null) {
                        jsonGenerator.writeStringField("type", "Null");
                        jsonGenerator.writeEndObject();
                        continue;
                    }
                    switch (obj.getClass().getSimpleName()) {
                    case "String":
                        jsonGenerator.writeStringField("type", "String");
                        jsonGenerator.writeStringField("obj", obj.toString());
                        break;
                    case "Date":
                        jsonGenerator.writeStringField("type", "Date");
                        jsonGenerator.writeStringField("obj", DATE_TIME_INSTANCE.format((Date) obj));
                        break;
                    case "Integer":
                        jsonGenerator.writeStringField("type", "Integer");
                        jsonGenerator.writeNumberField("obj", (Integer) obj);
                        break;
                    case "Long":
                        jsonGenerator.writeStringField("type", "Long");
                        jsonGenerator.writeNumberField("obj", (Long) obj);
                        break;
                    case "Double":
                        jsonGenerator.writeStringField("type", "Double");
                        jsonGenerator.writeNumberField("obj", (Double) obj);
                        break;
                    case "BigDecimal":
                        jsonGenerator.writeStringField("type", "BigDecimal");
                        jsonGenerator.writeStringField("obj", obj.toString());
                        break;
                    case "Boolean":
                        jsonGenerator.writeStringField("type", "Boolean");
                        jsonGenerator.writeBooleanField("obj", (Boolean) obj);
                        break;
                    case "byte[]":
                        jsonGenerator.writeStringField("type", "byte[]");
                        jsonGenerator.writeStringField("obj", new String(((byte[]) obj), "UTF-8"));
                        break;
                    default:
                        if (obj instanceof Serializable) {
                            jsonGenerator.writeStringField("type", "Object");

                            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
                            ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);
                            objectOutputStream.writeObject(obj);
                            objectOutputStream.close();
                            outputStream.close();
                            byte[] bytes = outputStream.toByteArray();
                            jsonGenerator.writeStringField("obj", Base64.encodeBase64String(bytes));
                        }
                    }
                    jsonGenerator.writeEndObject();
                }
                jsonGenerator.writeEndArray();
                jsonGenerator.writeEndObject();

            }
            jsonGenerator.writeEndArray();

            jsonGenerator.writeEndObject();
        }
    });
    module.addDeserializer(DataEvent.class, new StdNodeBasedDeserializer<DataEvent>(DataEvent.class) {
        @Override
        public DataEvent convert(JsonNode jsonNode, DeserializationContext deserializationContext)
                throws IOException {

            Rows.TYPE type = Rows.TYPE.valueOf(jsonNode.get("type").asText());
            Rows.STATE state = Rows.STATE.valueOf(jsonNode.get("state").asText());

            List<Row> rows = new ArrayList<>();

            JsonNode json_rows = jsonNode.get("rows");
            for (JsonNode row : json_rows) {

                List<Class> types = new ArrayList<>();
                List<String> names = new ArrayList<>();
                for (JsonNode name : row.get("names")) {
                    names.add(name.asText());
                }
                List<Object> objects = new ArrayList<>();
                for (JsonNode obj : row.get("objects")) {
                    JsonNode t = obj.get("type");
                    JsonNode rawObject = obj.get("obj");

                    Object object = null;
                    String objType = t.asText();
                    switch (objType) {
                    case "Null":
                        types.add(Void.class);
                        break;
                    case "String":
                        types.add(String.class);
                        object = rawObject.asText();
                        break;
                    case "Integer":
                        types.add(Integer.class);
                        object = rawObject.asInt();
                        break;
                    case "Long":
                        types.add(Long.class);
                        object = rawObject.asLong();
                        break;
                    case "Date":
                        types.add(Date.class);
                        try {
                            object = DATE_TIME_INSTANCE.parse(rawObject.asText());
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                        break;
                    case "Double":
                        types.add(Double.class);
                        object = rawObject.asDouble();
                        break;
                    case "BigDecimal":
                        types.add(BigDecimal.class);
                        object = new BigDecimal(rawObject.asText());
                        break;
                    case "Boolean":
                        types.add(Boolean.class);
                        object = rawObject.asBoolean();
                        break;
                    case "byte[]":
                        types.add(byte[].class);
                        object = rawObject.asText().getBytes("UTF-8");
                        break;
                    case "Object":
                        try {
                            types.add(Object.class);
                            object = new ObjectInputStream(
                                    new ByteArrayInputStream(Base64.decodeBase64(rawObject.asText())))
                                            .readObject();
                        } catch (ClassNotFoundException e) {
                            e.printStackTrace();
                        }
                        break;
                    }

                    objects.add(object);
                }

                Row r = new DeserializedRow(names, types, objects);
                rows.add(r);
            }
            Rows rowsObj = new Rows(rows, type, state);

            return new DataEvent(new RemoteSource(jsonNode.get("model-id").asText()), rowsObj);

        }
    });
    mapper.registerModule(module);
}