透過 JSON 連接器,您可以使用指令 來轉換、取得及轉換 JavaScript Object Notation (JSON) 資料,作為連鎖的一部分。例如,使用此連接器,您可以
- 將 JSON 陣列或物件轉換為 CSV
- 將 CSV 資料轉換為 JSON 陣列
- 使用已驗證的模式將文字解析為 JSON
注意: 多個連接器的指令會產生 JSON 輸出。要將 JSON 值抽取為字串、清單或 JSON,以便在連鎖中與稍後的命令一起使用,使用變量轉換 。
必要條件
要使用 JSON 連接器,我們建議您對 JSON 語法有基本的瞭解。
JSON 以純文字形式儲存和傳輸結構化資料 - 從單一數字到多個字串、陣列和物件。JSON 字串包含以下任一項
- 陣列-或值清單
- 一個物件 ,包含一個名/值對的關聯陣列
為了支援複雜的資料結構,您可以在 JSON 中嵌套陣列和物件。
陣列
在 JSON 中,陣列由方括號圍繞[] ,並包含以逗號分隔的值清單:
- 數字
- 以雙引號圍繞的文字字串
"" - 布林值,
true或false - 陣列,以方括號包圍
[] - 物件,以大括弧包圍
{} -
NULLvalues
例如,Wdata 功能的陣列是[ "Tables", "Queries", "Chains" ] 。
物件
物件以大括弧包圍{} ,並包含以逗號分隔的名稱/值對清單。每對物件包含一個以雙引號表示的欄位名稱"" ,接著是冒號: 及其值。物件支援與陣列相同的數值類型與語法。例如:
{
"product": "Wdata",
"company": "Workiva".
"features":[
"Tables",
"Queries",
"Chains"
]
} 設定 JSON 連接器
注意:為了使連接器可用於組織的鏈結,組織安全性管理員首先要從組態中啟用它。
- 在「鏈結產生器」中,按一下「連線」,然後按一下右上角的「建立」。
- 在Connector Connection 下 ,選擇JSON 和預設 CloudRunner。
- 在Basic Info 下,輸入唯一的名稱和描述以協助識別連線器。
- 選擇連接使用的環境,然後按一下儲存 。
- 若要測試連線,,使用連接器的CSV 至 JSON 指令建立並執行連鎖 ,並驗證它是否傳回有效的輸出。
疑難排解
如果連接器的Array to CSV 指令無法產生有效輸出,請檢查這些潛在問題。
陣列轉換為 CSV 成功,但其輸出沒有資料
如果Array to CSV 指令指示轉換成功,但其輸出沒有資料,請確定其Input File 輸入包含 JSON 陣列。例如,此 JSON 將會傳回沒有 有關腳踏車和球的詳細資訊:
{
"store":{
"bicycle":{
"color":"red",
"price":19.95
},
"ball":{
"color":"blue",
"price":21.95
}
}
} 相反地,若要回傳有關自行車和球的詳細資訊,請使用方括號包圍詳細資訊[] ,就像陣列一樣。例如:
{
"store":{
"bicycle":[{
"color": "red",
"price": 19.95
}],
"ball":[{
"color": "blue",
"price": 21.95
}]
}
} 根陣列元素路徑未找到
如果Array to CSV 錯誤回傳 "Error finding the root array element, please check your path:Path not found(找不到路徑)",請驗證要隔離的鍵是否在陣列中。例如,若要在此 JSON 中擷取usageUnit ,請輸入 JSONPath.pricingInfo[0].pricingExpression.usageUnit 作為指令的Path to Root 輸入:
{
"skus":[{
"skuId":"0033-4F4C-36F1",
"description":"Long Term Storage (us-east4)",
"category":{
"serviceDisplayName":"BigQuery",
"usageType":"OnDemand"
},
"serviceRegions":[
"us-east4"
],
"pricingInfo":[{
"summary":"",
"pricingExpression":{
"usageUnit":"GiBy.mo",
"displayQuantity":1,
"tieredRates":[{
"startUsageAmount":0,
"unitPrice":{
"currencyCode":"USD",
"units":"0"
}
}]
},
"currencyConversionRate":1,
"effectiveTime":"2019-08-18T02:30:55.193Z"
}],
"serviceProviderName":"Google"
}]
}