我有一个来自 mongo CDC 连接器的数据流,但问题是流键是 JSON 字符串的形式。
例如
{"id":"{ \"$oid\" : \"5bbb0c70cd0b9c06cf06c9c1\"}"}
我知道我可以使用 extractjsonfield 方法使用 jsonpath 提取数据,但是,我不知道如何提取我尝试过的文字美元符号:
$.id.$oid
$.id[\$oid]
$.id.*
每次我得到一个空响应,有什么想法吗?
我有一个来自 mongo CDC 连接器的数据流,但问题是流键是 JSON 字符串的形式。
例如
{"id":"{ \"$oid\" : \"5bbb0c70cd0b9c06cf06c9c1\"}"}
我知道我可以使用 extractjsonfield 方法使用 jsonpath 提取数据,但是,我不知道如何提取我尝试过的文字美元符号:
$.id.$oid
$.id[\$oid]
$.id.*
每次我得到一个空响应,有什么想法吗?
我想您的问题与问题 #1403有关。
您可以使用[\\" field_name \\"]
来引用该列。例如,
SELECT EXTRACTJSONFIELD(test,'$[\\"$oid\\"]') FROM testing;
我在使用 Debezium MongoDB 连接器时遇到了同样的问题。像@Giorgos 指出的那样使用[\\" field_name \\"]
ksqlDB 0.21.0 对我不起作用
相反[\" field_name \"]
(单反斜杠)有效。