前言
在當今數據驅動的時代,對數據進行探索和分析變得愈發關鍵。Web API作爲廣泛應用的數據源,提供了豐富的信息和資源。然而,面對包含JSON字符串列的Web API數據時,我們常常遇到一個挑戰:如何高效靈活地處理和查詢這些數據?這個問題在數據探索和提取過程中頻繁出現。因此小編今天以葡萄城公司的嵌入式BI工具——Wyn商業智能爲例,給大家介紹一下如何查詢Web API數據中的JSON字符串列。
環境準備
JSON字符串示例:
{
"TimeStamp": 756812384571,
"MethodName": "GetLedger",
"Message":
{
"ErrorCode": 1,
"Message": "獲取數據成功"
},
"Result":
[{
"id": 57,
"name": "123",
"type": "機組凝結水精處理臺賬",
"unit": 1,
"description": "",
"creator_id": 10,
"creationtime": "2023-12-22T16:54:28.880858",
"modification_id": 11,
"modificationtime": "2023-13-22T16:54:28.880858",
"contentjson": "{\"time\":\"2023-12-01\",\"PHZX\":\"1\"}",
"rpt_date": "2023-12-01"
}],
"Code": 0,
"OtherMsg": null,
"Error": null
}
操作步驟
1)創建JSON數據源
2)填寫數據源
源類型選擇嵌入式,數據源填寫Json字符串。(可以選擇環境準備中的示例Json字符串,也可以選擇其他的Json字符串)
3)預查詢
填寫完數據源之後,下一步時對數據進行SQL預查詢,保證JSON字符串中的數據可以被查詢出來。
編寫SQL查詢語句:
/**該語句是用來查詢Json字符串中Result的字段id、name和rpt_date以及contentjson的time和PHZX**/
select
tmp.id, tmp.name,tmp.rpt_date, tmp1.time, tmp1.PHZX
from
UnwindJson(@source, '$.Result') tmp
with
(
id integer '$.id',
name varchar '$.name',
rpt_date datetime '$.rpt_date',
contentjson varchar
)
Outer Apply UnwindJson(contentjson) tmp1
with
(
time datetime '$.time',
PHZX integer
)
SQL語句中用到的JSON函數:
UnwindJson:一種表值類型的函數,可分析 JSON 文本,並以行和列的形式返回 JSON 輸入的對象和屬性。換句話說,UnwindJson 對 JSON 文檔提供行集視圖,並可以指定行集中的列以及用於填充列的 JSON 屬性路徑,它返回一個虛擬表。
With:用於指示 UnwindJson 如何解析 JSON內容並填充列數據。一個 with 子句中包含幾個(至少一個)列定義,每個都有一個列名,一個數據類型和一個可選的 JsonPath 描述符。
Outer Apply:與Join 類似,也是對兩個表進行操作,子查詢語句可以作爲內部表。
更多JSON函數解釋可以點擊這裏查看。
編寫完SQL語句之後將其粘貼到預查詢的文本框中:
4)檢查結果是否正確
現在小編已經將Json字符串和對應的SQL查詢語句粘貼進來,下一步就是需要檢查SQL語句是否可以查詢出來Json字符串中的數據,點擊【下一步】,並跳轉到數據顯示界面,如下圖所示。SQL中查詢的5個字段的值已經顯示出來,並且和Json字符串中的值是一樣的。至此就完成了Web API數據中的JSON字符串列查詢的全步驟。
總結
以上就是查詢一個Web API數據中的JSON字符串列的全過程,如果您想了解更多關於Json數據連接的信息,歡迎查看這篇參考資料。