[英]Extract a parts of a JSON object that is part of an Array contained in a BigQuery table
I want extract the content of what I think is an Array with JSON in BigQuery.我想在 BigQuery 中提取我认为是 JSON 的数组的内容。
This is Current Table in BigQuery:这是 BigQuery 中的当前表:
CreatitveID创意ID | ResponsiveSearchAdHeadlines响应式搜索广告头条 |
---|---|
501 501 | [{ "assetText": "Object 999 Car", "assetId": 883,"assetPerformanceLabel": "PENDING","assetApprovalStatus": "APPROVED" }, { "assetText": "Die Schönheit des Rennsports", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Mehr erfahren", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Form folgt Funktion", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Hier entdecken", "assetId": 8832, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Eine neue Dimension des Stils", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Alle Details auf einen Blick", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "999 Car Probefahrt", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetAppr [{ "assetText": "Object 999 Car", "assetId": 883,"assetPerformanceLabel": "PENDING","assetApprovalStatus": "APPROVED" }, { "assetText": "Die Schönheit des Rennsports", "assetId" :605,“assetPerformanceLabel”:“待定”,“assetApprovalStatus”:“已批准”},{“assetText”:“Mehr erfahren”,“assetId”:134,“assetPerformanceLabel”:“待定”,“assetApprovalStatus”:“已批准” " }, { "assetText": "Form folgt Funktion", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Hier entdecken", "assetId" : 8832, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Eine neue Dimension des Stils", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus" : "APPROVED" }, { "assetText": "Alle Details auf einen Blick", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "999 Car Probefahrt”,“assetId”:605,“assetPerformanceLabel”:“待定”,“assetAppr ovalStatus": "APPROVED" }, { "assetText": "999 Car Konfigurator", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Angebot anfordern", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Probefahrt vereinbaren", "assetId": 883, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Grandioser Stil", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Einsteigen und losfahren", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Sportlich – rasant – Abenteuer", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Erwarte den Rausch", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }] ovalStatus": "APPROVED" }, { "assetText": "999 Car Konfigurator", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Angebot anfordern ", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Probefahrt vereinbaren", "assetId": 883, "assetPerformanceLabel": "PENDING", " assetApprovalStatus": "APPROVED" }, { "assetText": "Grandioser Stil", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Einsteigen und losfahren ", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Sportlich – rasant – Abenteuer", "assetId": 134, "assetPerformanceLabel": "PENDING" ", "assetApprovalStatus": "APPROVED" }, { "assetText": "Erwarte den Rausch", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }] |
501 501 | [{ "assetText": "Object 999 Car", "assetId": 883,"assetPerformanceLabel": "PENDING","assetApprovalStatus": "APPROVED" }, { "assetText": "Die Schönheit des Rennsports", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Mehr erfahren", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Form folgt Funktion", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Hier entdecken", "assetId": 8832, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Eine neue Dimension des Stils", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Alle Details auf einen Blick", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "999 Car Probefahrt", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetAppr [{ "assetText": "Object 999 Car", "assetId": 883,"assetPerformanceLabel": "PENDING","assetApprovalStatus": "APPROVED" }, { "assetText": "Die Schönheit des Rennsports", "assetId" :605,“assetPerformanceLabel”:“待定”,“assetApprovalStatus”:“已批准”},{“assetText”:“Mehr erfahren”,“assetId”:134,“assetPerformanceLabel”:“待定”,“assetApprovalStatus”:“已批准” " }, { "assetText": "Form folgt Funktion", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Hier entdecken", "assetId" : 8832, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Eine neue Dimension des Stils", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus" : "APPROVED" }, { "assetText": "Alle Details auf einen Blick", "assetId": 605, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "999 Car Probefahrt”,“assetId”:605,“assetPerformanceLabel”:“待定”,“assetAppr ovalStatus": "APPROVED" }, { "assetText": "999 Car Konfigurator", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Angebot anfordern", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Probefahrt vereinbaren", "assetId": 883, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Grandioser Stil", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Einsteigen und losfahren", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Sportlich – rasant – Abenteuer", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Erwarte den Rausch", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }] ovalStatus": "APPROVED" }, { "assetText": "999 Car Konfigurator", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Angebot anfordern ", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Probefahrt vereinbaren", "assetId": 883, "assetPerformanceLabel": "PENDING", " assetApprovalStatus": "APPROVED" }, { "assetText": "Grandioser Stil", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Einsteigen und losfahren ", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }, { "assetText": "Sportlich – rasant – Abenteuer", "assetId": 134, "assetPerformanceLabel": "PENDING" ", "assetApprovalStatus": "APPROVED" }, { "assetText": "Erwarte den Rausch", "assetId": 134, "assetPerformanceLabel": "PENDING", "assetApprovalStatus": "APPROVED" }] |
Desired resulting table:期望的结果表:
CreatitveID创意ID | ResponsiveSearchAdHeadlines_assetText_ID ResponsiveSearchAdHeadlines_assetText_ID | ResponsiveSearchAdHeadlines_assetText ResponsiveSearchAdHeadlines_assetText |
---|---|---|
501 501 | 883 883 | Object 999 Car Object 999车 |
501 501 | 605 605 | Die Schönheit des Rennsports体育运动 |
501 501 | 134 134 | Mehr erfahren Mehr erfahren |
... ... | ... ... | ... ... |
I believe I should use JSON_EXTRACT_SCALAR(), but I don´t really know how the whole query should look like.我相信我应该使用 JSON_EXTRACT_SCALAR(),但我真的不知道整个查询应该是什么样子。
Some Ideas?一些想法?
Consider below approach考虑以下方法
select CreatitveID,
json_value(Headline, '$.assetId') assetId,
json_value(Headline, '$.assetText') assetText
from your_table,
unnest(json_extract_array(ResponsiveSearchAdHeadlines)) Headline
if applied to sample data in your question - output is如果应用于您问题中的示例数据 - output 是
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.