class haxe.Unserializer
Available on all platforms
The Unserializer class is the complement to the Serializer class. It parses a serialization String and creates objects from the contained data.
This class can be used in two ways:
-
create a new Unserializer() instance with a given serialization String, then call its unserialize() method until all values are extracted
-
call Unserializer.run() to unserialize a single value from a given String
Class Fields
static var DEFAULT_RESOLVER:TypeResolver
This value can be set to use custom type resolvers.
A type resolver finds a Class or Enum instance from a given String. By
default, the haxe Type Api is used.
A type resolver must provide two methods:
1. resolveClass(name:String):Class<Dynamic> is called to determine a
Class from a class name
2. resolveEnum(name:String):Enum<Dynamic> is called to determine an
Enum from an enum name
This value is applied when a new Unserializer instance is created.
Changing it afterwards has no effect on previously created instances.
static function run(v:String):Dynamic
Unserializes v
and returns the according value.
This is a convenience function for creating a new instance of
Unserializer with `v` as buffer and calling its unserialize() method
once.
Instance Fields
Creates a new Unserializer instance, with its internal buffer
initialized to `buf`.
This does not parse `buf` immediately. It is parsed only when calls to
`this.unserialize` are made.
Each Unserializer instance maintains its own cache.
function getResolver():TypeResolver
Gets the type resolver of this
Unserializer instance.
See DEFAULT_RESOLVER for more information on type resolvers.
function setResolver(r:TypeResolver):Void
Sets the type resolver of this
Unserializer instance to r
.
If `r` is null, a special resolver is used which returns null for all
input values.
See DEFAULT_RESOLVER for more information on type resolvers.
function unserialize():Dynamic
Unserializes the next part of this
Unserializer instance and returns
the according value.
This function may call `this.resolver.resolveClass` to determine a
Class from a String, and `this.resolver.resolveEnum` to determine an
Enum from a String.
If `this` Unserializer instance contains no more or invalid data, an
exception is thrown.
This operation may fail on structurally valid data if a type cannot be
resolved or if a field cannot be set. This can happen when unserializing
Strings that were serialized on a different haxe target, in which the
serialization side has to make sure not to include platform-specific
data.
Classes are created from Type.createEmptyInstance, which means their
constructors are not called.