hprose.Writer

构造器方法

  1. var writer = new Writer(stream[, simple[, binary]]);

第一个参数 stream 是一个 StringIO 的实例对象,序列化数据将会写入到该对象中。

第二个参数 simple 如果为 true,则不使用引用方式序列化,通常在序列化的数据中不包含引用类型数据时,设置为 true 可以加快速度。当包含引用类型数据时,需要设置为 false(即默认值),尤其是当引用数据中包括递归数据时,如果不使用引用方式,会陷入死循环导致堆栈溢出的错误。

第三个参数 binarytrue 时,数据序列化为二进制字符串,为 false 时,序列化为普通字符串。只有当序列化数据中包含二进制字符串数据时,才需要将该参数设置为 true。序列化为二进制字符串的效率要低于序列化为普通字符串的效率。

stream 属性

只读属性,返回当前用于写入序列化数据的 StringIO 实例对象。该属性的值即上面构造器中的第一个参数。

binary 属性

可读写属性,表示该对象是否以二进制序列化,该属性的默认值即上面构造器的第三个参数。

serialize 方法

  1. writer.serialize(value);

序列化数据 value。其中 value 为任意 hprose 支持的类型。

writeInteger 方法

  1. writer.writerInteger(value);

序列化一个整数 value。其中 value 为一个 32 位有符号整型数。超过这个范围的整数按照长整型数格式序列化。

writeDouble 方法

  1. writer.writeDouble(value);

序列化一个浮点数 value

writeBoolean 方法

  1. writer.writeBoolean(value);

序列化一个布尔值 value

writeUTCDate 方法

  1. writer.writeUTCDate(value);

序列化一个 UTC 日期时间值 value。其中 valueDate 类型的实例对象。

  1. writer.writeUTCDateWithRef(value);

序列化一个 UTC 日期时间值 value,如果该值之前被序列化过,则作为引用序列化。

writeDate 方法

  1. writer.writeDate(value);

序列化一个本地日期时间值 value。其中 valueDate 类型的实例对象。

  1. writer.writeDateWithRef(value);

序列化一个本地日期时间值 value,如果该值之前被序列化过,则作为引用序列化。

writeTime 方法

  1. writer.writeTime(value);

序列化一个本地时间值 value。其中 valueDate 类型的实例对象。

  1. writer.writeTimeWithRef(value);

序列化一个本地时间值 value,如果该值之前被序列化过,则作为引用序列化。

writeBinary 方法

  1. writer.writeBinary(value);

序列化一个二进制数据值 value。其中 valueBinaryString 类型的实例对象或保存了二进制字符串的 String 类型的对象。只有当 binary 属性为 true 时,该方法才能调用,否则抛出异常。

  1. writer.writeBinaryWithRef(value);

序列化一个二进制数据值 value,如果该值之前被序列化过,则作为引用序列化。

writeString 方法

  1. writer.writeString(value);

序列化一个字符串值 value

  1. writer.writeStringWithRef(value);

序列化一个字符串值 value,如果该值之前被序列化过,则作为引用序列化。

writeList 方法

  1. writer.writeList(value);

序列化一个 List 值 value。其中 value 是一个数组的实例对象。

  1. writer.writeListWithRef(value);

序列化一个 List 值 value,如果该值之前被序列化过,则作为引用序列化。

writeMap 方法

  1. writer.writeMap(value);

序列化一个 Map 值 value。其中 value 是一个普通的 javascript 对象(比如直接使用 JSON 形式创建的对象)或 ECMAScript 6 的 Map 对象。

  1. writer.writeMapWithRef(value);

序列化一个 Map 值 value,如果该值之前被序列化过,则作为引用序列化。

writeObject 方法

  1. writer.writeObject(value);

序列化一个对象值 value。其中 value 是一个对象。该对象的构造器已经通过 hprose.ClassManager.register 方法注册,或者该对象的构造器是一个非匿名函数。

  1. writer.writeObjectWithRef(value);

序列化一个对象值 value,如果该值之前被序列化过,则作为引用序列化。

reset 方法

  1. writer.reset();

将序列化的引用计数器重置。