Deserializes an ABL class-based object from the specified JSON stream.

Return type: Progress.Lang.Object class

Access: PUBLIC

Applies to: Progress.IO.JsonSerializer class

Syntax

Deserialize( INPUT input-stream AS Progress.IO.InputStream )
input-stream
The stream from which the class-based object is deserialized.

The following code sample deserializes the object in myFileStream to the object reference myObj:

DEFINE VARIABLE myFileOutStream AS Progress.IO.FileOutputStream.
DEFINE VARIABLE myFileInStream  AS Progress.IO.FileInputStream.
DEFINE VARIABLE mySerializer    AS Progress.IO.JsonSerializer.
DEFINE VARIABLE myObj           AS Acme.MyClass.

myObj = NEW  Acme.MyClass().

mySerializer = NEW Progress.IO.JsonSerializer(FALSE).

/* Serialize object */
myFileOutStream = NEW Progress.IO.FileOutputStream("MyClass.json").
mySerializer:Serialize(myObj, myFileOutStream).
myFileOutStream:Close().

/* Deserialize object */
myFileInStream = NEW Progress.IO.FileInputStream("MyClass.json").
myObj = CAST(mySerializer:Deserialize(myFileInStream), Acme.MyClass).
myFileInStream:Close().

Notes

  • If a class member is not present in the input stream (for example, a private or protected member that was not defined as SERIALIZABLE), then that member is assigned its initial value.
  • If the input stream is unknown or cannot be read from, the AVM raises an error.
  • If the class of the object being deserialized changed between serialization and deserialization in a way that causes the object and its class to no longer match, the AVM raises an error.
  • The current position in the stream must be at the beginning of the data for the serialized object for the deserialization to complete successfully.

See also

Serialize( ) method (JsonSerializer)