Grijjy.Bson.Serialization.pas

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)

原文地址:https://www.cnblogs.com/hnxxcxg/p/14036070.html