使用 JSONPath 轉換活頁簿中的 JSON 資料
活頁簿可查詢許多來源的資料。 有些端點 (例如 Azure Resource Manager 或自訂端點) 可傳回 JSON 形式的結果。 如果查詢端點傳回的 JSON 資料採用您不想要的格式,您可以使用 JSONPath 轉換將 JSON 轉換成資料表結構。 您可使用資料表後續繪製活頁簿視覺效果。
JSONPath 是 JSON 的查詢語言,如同用於 XML 的 XPath。 就像 XPath 一樣,JSONPath 可讓您從 JSON 結構中擷取和篩選資料。
使用 JSONPath
在此範例中,JSON 物件代表存放區的詳細目錄。 我們會列出商店所售書籍的標題、作者和價格,以建立書籍的資料表。
選取 [編輯] 以將活頁簿切換為編輯模式。
使用 [新增]>[新增查詢] 連結,將查詢控制項新增至活頁簿。
選取資料來源 JSON。
使用 JSON 編輯器輸入下列 JSON 程式碼片段:
{ "store": { "books": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 }, { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "isbn": "0-553-21311-3", "price": 8.99 }, { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99 } ], "bicycle": { "color": "red", "price": 19.95 } } }
選取 [結果設定] 索引標籤,並將結果格式切換為 [JSON 路徑]。
套用下列 JSON 路徑設定:
JSON 路徑資料表:
$.store.books
。 此欄位代表資料表根目錄的路徑。 在此案例中,我們關注的是商店的書籍庫存。 資料表路徑會從 JSON 中篩選出書籍資訊。資料行識別碼 資料行 JSON 路徑 標題 $.title
作者 $.author
價格 $.price
資料行識別碼會是資料行標頭。 資料行 JSON 路徑欄位代表從資料表根目錄到資料行值的路徑。
選取 [執行查詢]。
使用規則運算式轉換值
您可能有一些不是標準格式的資料。 若要有效地使用該資料,您會想將該資料轉換成標準格式。
在此範例中,發行日期的格式為 YYYMMMDD。 程式碼會將此值解譯為數值,而非文字,以產生靠右對齊的數位,而不是日期。
您可以使用結果設定中的 [類型]、[RegEx Match],以及 [取代為] 欄位,將結果轉換成 true 日期。
結果設定欄位 | 描述 |
---|---|
類型 | 可讓您明確變更 API 所傳回之值的類型。 此欄位我們通常會保持未設定,但您可以使用此欄位來強制將值設定為不同的類型。 |
Regex 配對 | 可讓您輸入規則運算式,以參與 API 所傳回的值 (或部分),而不是整個值。 此欄位通常會與 [取代為] 欄位結合。 |
取代為 | 使用此欄位來建立新的值以及規則運算式。 如果這個值是空的,則預設值為 $& ,這是運算式的相符結果。 請參閱字串取代文件,以查看可用來產生其他輸出的其他值。 |
若要將 YYYMMDD 格式轉換成 YYYY-MM-DD 格式:
選取方格中的 [已發佈] 資料列。
在 [類型] 欄位中,選取 [日期/時間],讓資料行可在圖表中使用。
在 [Regex Match] 欄位中,使用此規則運算式:
([0-9]{4})([0-9]{2})([0-9]{2})
。 規則運算式:- 會配對四位數,接著是兩位數,最後是另一組兩位數。
- 括弧會形成擷取群組,以在下一個步驟中使用。
在 [取代為] 中,使用此規則運算式:
$1-$2-$3
。 此運算式會建立一個新的字串,其中每個擷取的群組之間都有連字元,將 ”12345678” 轉換成 “1234-56-78”。再次執行查詢。