postgresql - 在 json 数据上创建报告/仪表板
问题描述
我在谷歌云上部署了问卷网络应用程序(使用 ReactJS 框架)。问题和答案以 json 格式(键、值对)保存在 Cloud SQL (Postgres) 表列中,如下所示:
{"Email Address":"xyz123@gmail.com","Name":"Shubman","How did you find us":"Web search","Capital":200000,"Instruments":["Convertible","SAFE"]}
在 Data Studio 中创建报表时,上述 json 格式不会分解为单独的 key 和 value ,而是将整个 json 格式视为单个。但我想在将键值对提取到各个列之后构建报告。怎么做?。
解决方案
Data Studio 无法为您执行此操作(实际上,也许它可以使用 REGEX,但它并不值得付出努力),但您可以在 Cloud SQL/PostgreSQL 中进行查询以将这个 JSON 分解为单独的列。
假设您的表如下(注意名为 的 json 字段my_json
):
create table dumb_table (id integer, firstname varchar(100), lastname varchar(100), my_json json);
insert into dumb_table (id, firstname, lastname, my_json) values (1, 'albert', 'einstein', '{"customer": "Lily", "items": {"product": "Beer","qty": 46}}');
insert into dumb_table (id, firstname, lastname, my_json) values (2, 'isaac', 'newton', '{"customer": "Josh", "items": {"product": "Milk","qty": 77}}');
insert into dumb_table (id, firstname, lastname, my_json) values (3, 'marie', 'curie', '{"customer": "Mary", "items": {"product": "Soda","qty": 88}}');
您可以在各个字段中分解它们,如下所示:
select
/* get all fields */
dumb_table.*
/* explode the remaining JSON fields */
, dumb_table.my_json ->> 'customer' as customer_name
, dumb_table.my_json -> 'items' ->> 'product' as product_name
, dumb_table.my_json -> 'items' ->> 'qty' as quantity
from dumb_table;
这样,Data Studio 不需要解析您的 JSON 字段。
推荐阅读
- android - 深度链接 Google 地图 URI
- sql - 选择表中列的前 10 行
- scripting - Setup Factory 9 - 检查文件中的字符串
- python - 如何在数据框中使用熊猫创建具有不同子列标题的自定义多索引
- javascript - npm run build 后的静态 css 文件
- java - 如何下载生成的 PDF 而不将其存储在服务器上?
- dns - Host 标头对托管多个服务器的物理主机有何帮助?
- python-2.7 - 是否可以在 GUI 之外使用数据?
- python - 使用 unique_together 并保存经过身份验证的用户时出现问题
- ember.js - Ember init 无法识别 _super