Grijjy.Bson.Serialization.pas

Grijjy.Bson.Serialization.pas

序列Delphi records 和 objects 为 JSON 和 BSON 格式 (or to
TgoBsonDocument values).

1
2
3
4
5
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;<br>。。。。。。

  支持的数据格式

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)

posted @   delphi中间件  阅读(247)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2016-11-25 数据集和JSON相互转换
2016-11-25 咏南中间件+开发框架新年大促销
点击右上角即可分享
微信分享提示