com.fasterxml.jackson.databind.util
Class JSONWrappedObject

java.lang.Object
  extended by com.fasterxml.jackson.databind.util.JSONWrappedObject
All Implemented Interfaces:
JsonSerializable

public class JSONWrappedObject
extends Object
implements JsonSerializable

General-purpose wrapper class that can be used to decorate serialized value with arbitrary literal prefix and suffix. This can be used for example to construct arbitrary Javascript values (similar to how basic function name and parenthesis are used with JSONP).

Author:
tatu
See Also:
JSONPObject

Field Summary
protected  String _prefix
          Literal String to output before serialized value.
protected  JavaType _serializationType
          Optional static type to use for serialization; if null, runtime type is used.
protected  String _suffix
          Literal String to output after serialized value.
protected  Object _value
          Value to be serialized as JSONP padded; can be null.
 
Constructor Summary
JSONWrappedObject(String prefix, String suffix, Object value)
           
JSONWrappedObject(String prefix, String suffix, Object value, JavaType asType)
          Constructor that should be used when specific serialization type to use is important, and needs to be passed instead of just using runtime (type-erased) type of the value.
 
Method Summary
 String getPrefix()
           
 JavaType getSerializationType()
           
 String getSuffix()
           
 Object getValue()
           
 void serialize(com.fasterxml.jackson.core.JsonGenerator jgen, SerializerProvider provider)
          Serialization method called when no additional type information is to be included in serialization.
 void serializeWithType(com.fasterxml.jackson.core.JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)
          Serialization method called when additional type information is expected to be included in serialization, for deserialization to use.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_prefix

protected final String _prefix
Literal String to output before serialized value. Will not be quoted when serializing value.


_suffix

protected final String _suffix
Literal String to output after serialized value. Will not be quoted when serializing value.


_value

protected final Object _value
Value to be serialized as JSONP padded; can be null.


_serializationType

protected final JavaType _serializationType
Optional static type to use for serialization; if null, runtime type is used. Can be used to specify declared type which defines serializer to use, as well as aspects of extra type information to include (if any).

Constructor Detail

JSONWrappedObject

public JSONWrappedObject(String prefix,
                         String suffix,
                         Object value)

JSONWrappedObject

public JSONWrappedObject(String prefix,
                         String suffix,
                         Object value,
                         JavaType asType)
Constructor that should be used when specific serialization type to use is important, and needs to be passed instead of just using runtime (type-erased) type of the value.

Method Detail

serializeWithType

public void serializeWithType(com.fasterxml.jackson.core.JsonGenerator jgen,
                              SerializerProvider provider,
                              TypeSerializer typeSer)
                       throws IOException,
                              com.fasterxml.jackson.core.JsonProcessingException
Description copied from interface: JsonSerializable
Serialization method called when additional type information is expected to be included in serialization, for deserialization to use.

Usually implementation consists of a call to one of methods in TypeSerializer (such as TypeSerializer.writeTypePrefixForObject(Object, JsonGenerator)) followed by serialization of contents, followed by another call to TypeSerializer (such as TypeSerializer.writeTypeSuffixForObject(Object, JsonGenerator)). Exact methods to call in TypeSerializer depend on shape of JSON Object used (Array, Object or scalar like String/Number/Boolean).

Note that some types (most notably, "natural" types: String, Integer, Double and Boolean) never include type information.

Specified by:
serializeWithType in interface JsonSerializable
Throws:
IOException
com.fasterxml.jackson.core.JsonProcessingException

serialize

public void serialize(com.fasterxml.jackson.core.JsonGenerator jgen,
                      SerializerProvider provider)
               throws IOException,
                      com.fasterxml.jackson.core.JsonProcessingException
Description copied from interface: JsonSerializable
Serialization method called when no additional type information is to be included in serialization.

Specified by:
serialize in interface JsonSerializable
Throws:
IOException
com.fasterxml.jackson.core.JsonProcessingException

getPrefix

public String getPrefix()

getSuffix

public String getSuffix()

getValue

public Object getValue()

getSerializationType

public JavaType getSerializationType()


Copyright © 2012 fasterxml.com. All Rights Reserved.