Grijjy.Bson.Serialization.pas
序列Delphi records 和 objects 为 JSON 和 BSON 格式 (or to
TgoBsonDocument values).
class procedure Serialize<T>(const AValue: T; out AJson: String); overload; inline; static; class procedure Serialize<T>(const AValue: T; const ASettings: TgoJsonWriterSettings; out AJson: String); overload; inline; static; class procedure Serialize<T>(const AValue: T; out ABson: TBytes); overload; inline; static; class procedure Serialize<T>(const AValue: T; out ADocument: TgoBsonDocument); overload; inline; static; class procedure Serialize<T>(const AValue: T; const AWriter: IgoBsonBaseWriter); overload; static;
。。。。。。
支持的数据格式:
Boolean, can be serialized as:
* Boolean (default)
* Int32, Int64, Double (False=0, True=1)
* String (False="false", True="true")
Integer types:
* Int32, Int64 (default)
* Double
* String (IntToStr-conversion)
Enumerated types:
* Int32 (default, ordinal value)
* Int64 (ordinal value)
* String (name of the enum value)
Set types:
* Int32, Int64 (default, stored as a bitmask)
* String (comma-separated list of elements, without any (square) brackets)
Floating point types:
* Double (default)
* Int32, Int64 (truncated version)
* String (FloatToStr-conversion, in US format)
TDateTime:
* DateTime (default)
* Int64 (number of UTC ticks since midnight 1/1/0001, using 10,000 ticks per
millisecond)
* String (DateToISO8601-conversion)
* Document (a document with two elements: TimeStamp serialized as a DateTime
value, and Ticks serialized as the number of ticks since midnight 1/1/0001).
For example:
<tt>{ "DateTime" : ISODate("2016-05-01T15:28:57.784Z"),
"Ticks" : NumberLong("635977133377840000") }</tt>
String:
* String (default)
* Symbol
* ObjectId (if the string is a valid TgoObjectId)
WideChar:
* Int32 (default, ordinal value)
* Int64 (ordinal value)
* String (single-character string)
TGUID:
* Binary (default)
* String (without curly braces)
TgoObjectId:
* TgoObjectId (default)
* String (string value of ObjectId)
TBytes:
* Binary (default)
* String (hex string, using 2 hex digits per byte)
* Array (a regular JSON array of bytes)