• hprose.Writer
    • 构造器方法
    • stream 属性
    • binary 属性
    • serialize 方法
    • writeInteger 方法
    • writeDouble 方法
    • writeBoolean 方法
    • writeUTCDate 方法
    • writeDate 方法
    • writeTime 方法
    • writeBinary 方法
    • writeString 方法
    • writeList 方法
    • writeMap 方法
    • writeObject 方法
    • reset 方法

    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();

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