Redshift JSON Parsing



我在Redshift表中有一些JSON数据,类型不同。一个示例条目是:

[{"value":["*"], "key":"testData"}, {"value":"["GGG"], key: "differentData"}]

我想归还基于密钥的vales,我该怎么做?我正在尝试做一些类似的事情

json_extract_path_text(column, 'value'),但不幸的是它出错了。有什么想法吗?

所以第一个问题是您的字符串不是有效的JSON。引号不匹配且缺失。我想你的意思是:

[{"value":["*"], "key":"testData"}, {"value":["GGG"], "key": "differentData"}]

我不知道这是数据问题还是转录错误,但除非json文本有效,否则这些函数将无法工作。

接下来要考虑的是,在顶层,这个json是一个数组,因此您需要使用json_extract_array_element_text((函数来获取数组的一个元素。例如:

json_extract_array_element_text('json string', 0)

因此,把这些放在一起,我们可以提取第一个";值";带有(未经测试(:

json_extract_path_text(
json_extract_array_element_text(
'[{"value":["*"], "key":"testData"}, {"value":["GGG"], "key": "differentData"}]', 0
), 'value'
)

应该返回字符串["*"]。

最新更新