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:
-
resolveClass(name:String):Class
is called to determine a Class from a class name -
resolveEnum(name:String):Enum
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.