JSON 格式化器
概述
在本指南中,您可以了解如何指定用于MongoDB Kafka源连接器的内置JSON格式化程序类。
JSON格式化程序
JSON格式化程序指定JSON数据的外观。它们提供连接器在输出数据时如何表示不同类型的说明。
内置格式化程序
以下表格描述了源连接器中可用的格式化程序类
类 | 描述 |
---|---|
com.mongodb.kafka.connect.source.json.formatter.DefaultJson | 遗留的严格JSON格式化程序。 |
com.mongodb.kafka.connect.source.json.formatter.ExtendedJson | 完全类型安全的扩展JSON格式化器。此格式化器强调类型保留,并以BSON类型表示大多数值。 |
com.mongodb.kafka.connect.source.json.formatter.SimplifiedJson | 简化JSON格式化器。此格式化器将ObjectId、Decimal、Date和Binary值表示为字符串。 |
示例
以下表格描述了本指南中示例使用的示例文档的字段,各列描述了每个字段或嵌套字段的字段名、值和类型。
名称 | 值 | 类型 | |
---|---|---|---|
_id |
| ObjectID ($oid ) | |
w |
| 数组 - Decimal128 ($numberDecimal )- Double ($numberDouble ) | |
x |
| Binary ($binary ) | |
y |
| Date ($date ) | |
z |
| 带有字段的文档 - a : Boolean - b : Int32 ($numberInt )- c : String |
默认JSON格式化器
在您的源连接器的配置属性中,设置以下属性以指定默认JSON格式化器
"output.json.formatter": "com.mongodb.kafka.connect.source.json.formatter.DefaultJson"
当您从Kafka主题输出示例文档内容时,输出显示以下类型表示
具有其BSON类型的ObjectId值
具有其BSON类型的Decimal值
具有其缓冲字符串和二进制类型的Binary值
自UNIX纪元以来的毫秒数表示的Date值
{ "_id": {"$oid": "5f15aab12435743f9bd126a4"}, "w": [{"$numberDecimal": "12345.6789"}, 23.53], "x": {"$binary": "SSBsb3ZlIGZvcm1hdHRpbmch", "$type": "00"}, "y": {"$date": 1683793627000}, "z": {"a": false, "b": 87, "c": "hello world"} }
扩展JSON格式化工具
在源连接器的配置属性中,设置以下属性以指定扩展JSON格式化工具
"output.json.formatter": "com.mongodb.kafka.connect.source.json.formatter.ExtendedJson"
当您从Kafka主题输出示例文档内容时,输出显示以下类型表示
具有其BSON类型的ObjectId值
具有其BSON类型的Decimal值
Double
值及其BSON类型具有其缓冲字符串和二进制类型的Binary值
自UNIX纪元以来的毫秒数表示的Date值
Int32
值及其BSON类型
{ "_id": {"$oid": "5f15aab12435743f9bd126a4"}, "w": [{"$numberDecimal": "12345.6789"}, {"$numberDouble": "23.53"}], "x": {"$binary": "SSBsb3ZlIGZvcm1hdHRpbmch", "$type": "00"}, "y": {"$date": 1683793627000}, "z": {"a": false, "b": {"$numberInt": "87"}, "c": "hello world"} }
简化JSON格式化工具
在源连接器的配置属性中,设置以下属性以指定简化JSON格式化工具
"output.json.formatter": "com.mongodb.kafka.connect.source.json.formatter.SimplifiedJson"
当您从Kafka主题输出示例文档内容时,输出显示以下类型表示
ObjectId
值作为其十六进制字符串Decimal
值作为字符串Binary
值作为其缓冲字符串Date
值作为字符串
{ "_id": "5f15aab12435743f9bd126a4", "w": ["12345.6789", 23.53], "x": "SSBsb3ZlIGZvcm1hdHRpbmch", "y": "2023-05-11T08:27:07Z", "z": {"a": false, "b": 87, "c": "hello world"} }