Unserializer
Unserializer
package haxe
Available on all platformsThe
Unserializer
class is the complement to theSerializer
class. It parses a serializationString
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 itsunserialize()
method until all values are extracted- call
Unserializer.run()
to unserialize a single value from a given StringThe specification of the serialization format can be found here: https://haxe.org/manual/serialization/format
Constructor
new (buf:String)
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.
Methods
getResolver ():TypeResolver
Gets the type resolver of this
Unserializer instance.
See DEFAULT_RESOLVER
for more information on type resolvers.
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.
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.
Static variables
static DEFAULT_RESOLVER:TypeResolver = new DefaultResolver()
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<Dynamic>
is called to determine a`Class` from a class name
-
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 methods
static 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.
© 2005–2016 Haxe Foundation
Licensed under a MIT license.
http://api.haxe.org/haxe/Unserializer.html