/** * Helper method that handles configuration details when constructing serializers for * <code>Object[]</code> (and subtypes, except for String). */ protected JsonSerializer<?> buildArraySerializer(SerializationConfig config, ArrayType type, BasicBeanDescription beanDesc, BeanProperty property, boolean staticTyping, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) { Class<?> raw = type.getRawClass(); if (String[].class == raw) { return new StdArraySerializers.StringArraySerializer(property); } // other standard types? JsonSerializer<?> ser = _arraySerializers.get(raw.getName()); if (ser != null) { return ser; } return new ObjectArraySerializer(type.getContentType(), staticTyping, elementTypeSerializer, property, elementValueSerializer); }
@Override public void serializeContents(String[] value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException { final int len = value.length; if (len == 0) { return; } if (_elementSerializer != null) { serializeContentsSlow(value, jgen, provider, _elementSerializer); return; } /* 08-Dec-2008, tatus: If we want this to be fully overridable * (for example, to support String cleanup during writing * or something), we should find serializer by provider. * But for now, that seems like an overkill: and caller can * add custom serializer if that is needed as well. * (ditto for null values) */ //JsonSerializer<String> ser = (JsonSerializer<String>)provider.findValueSerializer(String.class); for (int i = 0; i < len; ++i) { String str = value[i]; if (str == null) { jgen.writeNull(); } else { //ser.serialize(value[i], jgen, provider); jgen.writeString(value[i]); } } }
@Override public void serializeContents(String[] value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException { final int len = value.length; if (len == 0) { return; } if (_elementSerializer != null) { serializeContentsSlow(value, jgen, provider, _elementSerializer); return; } /* 08-Dec-2008, tatus: If we want this to be fully overridable * (for example, to support String cleanup during writing * or something), we should find serializer by provider. * But for now, that seems like an overkill: and caller can * add custom serializer if that is needed as well. * (ditto for null values) */ //JsonSerializer<String> ser = (JsonSerializer<String>)provider.findValueSerializer(String.class); for (int i = 0; i < len; ++i) { String str = value[i]; if (str == null) { jgen.writeNull(); } else { //ser.serialize(value[i], jgen, provider); jgen.writeString(value[i]); } } }
/** * Helper method that handles configuration details when constructing serializers for * <code>Object[]</code> (and subtypes, except for String). */ protected JsonSerializer<?> buildArraySerializer(SerializationConfig config, ArrayType type, BasicBeanDescription beanDesc, BeanProperty property, boolean staticTyping, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) { Class<?> raw = type.getRawClass(); if (String[].class == raw) { return new StdArraySerializers.StringArraySerializer(property); } // other standard types? JsonSerializer<?> ser = _arraySerializers.get(raw.getName()); if (ser != null) { return ser; } return new ObjectArraySerializer(type.getContentType(), staticTyping, elementTypeSerializer, property, elementValueSerializer); }
/** * Helper method that handles configuration details when constructing serializers for * <code>Object[]</code> (and subtypes, except for String). */ protected JsonSerializer<?> buildArraySerializer(SerializationConfig config, ArrayType type, BasicBeanDescription beanDesc, BeanProperty property, boolean staticTyping, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) { Class<?> raw = type.getRawClass(); if (String[].class == raw) { return new StdArraySerializers.StringArraySerializer(property); } // other standard types? JsonSerializer<?> ser = _arraySerializers.get(raw.getName()); if (ser != null) { return ser; } return new ObjectArraySerializer(type.getContentType(), staticTyping, elementTypeSerializer, property, elementValueSerializer); }
@Override public JsonNode getSchema(SerializerProvider provider, Type typeHint) { ObjectNode o = createSchemaNode("array", true); o.put("items", createSchemaNode("string")); return o; } }
@Override public JsonNode getSchema(SerializerProvider provider, Type typeHint) { ObjectNode o = createSchemaNode("array", true); o.put("items", createSchemaNode("string")); return o; } }
@Override public void serializeContents(String[] value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException { final int len = value.length; if (len == 0) { return; } if (_elementSerializer != null) { serializeContentsSlow(value, jgen, provider, _elementSerializer); return; } /* 08-Dec-2008, tatus: If we want this to be fully overridable * (for example, to support String cleanup during writing * or something), we should find serializer by provider. * But for now, that seems like an overkill: and caller can * add custom serializer if that is needed as well. * (ditto for null values) */ //JsonSerializer<String> ser = (JsonSerializer<String>)provider.findValueSerializer(String.class); for (int i = 0; i < len; ++i) { String str = value[i]; if (str == null) { jgen.writeNull(); } else { //ser.serialize(value[i], jgen, provider); jgen.writeString(value[i]); } } }
/** * Helper method that handles configuration details when constructing serializers for * <code>Object[]</code> (and subtypes, except for String). */ protected JsonSerializer<?> buildArraySerializer(SerializationConfig config, ArrayType type, BasicBeanDescription beanDesc, BeanProperty property, boolean staticTyping, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) { Class<?> raw = type.getRawClass(); if (String[].class == raw) { return new StdArraySerializers.StringArraySerializer(property); } // other standard types? JsonSerializer<?> ser = _arraySerializers.get(raw.getName()); if (ser != null) { return ser; } return new ObjectArraySerializer(type.getContentType(), staticTyping, elementTypeSerializer, property, elementValueSerializer); }
@Override public JsonNode getSchema(SerializerProvider provider, Type typeHint) { ObjectNode o = createSchemaNode("array", true); o.put("items", createSchemaNode("string")); return o; } }
@Override public void serializeContents(String[] value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException { final int len = value.length; if (len == 0) { return; } if (_elementSerializer != null) { serializeContentsSlow(value, jgen, provider, _elementSerializer); return; } /* 08-Dec-2008, tatus: If we want this to be fully overridable * (for example, to support String cleanup during writing * or something), we should find serializer by provider. * But for now, that seems like an overkill: and caller can * add custom serializer if that is needed as well. * (ditto for null values) */ //JsonSerializer<String> ser = (JsonSerializer<String>)provider.findValueSerializer(String.class); for (int i = 0; i < len; ++i) { String str = value[i]; if (str == null) { jgen.writeNull(); } else { //ser.serialize(value[i], jgen, provider); jgen.writeString(value[i]); } } }
@Override public JsonNode getSchema(SerializerProvider provider, Type typeHint) { ObjectNode o = createSchemaNode("array", true); o.put("items", createSchemaNode("string")); return o; } }