簡體   English   中英

如何使用 json_extract_path_text?

[英]how to use json_extract_path_text?

我在 redshift 中使用 JSON_EXTRACT_PATH_TEXT 時面臨 JSON 提取的問題

我有兩個單獨的 JSON 列,一個包含客戶正在使用的調制解調器,另一個包含充值詳細信息

{"Mnfcr": "Technicolor","Model_Name":"Technicolor ABC1243","Smart_Modem":"Y"} 對於上述情況,我使用 JSON_EXTRACT_PATH_TEXT(COLUMN_NAME, 'Model_Name') 作為 model_name 提取 Model_name 沒有問題

[{"Date":"2021-12-24 21:42:01","Amt":50.00}] 這個給我帶來了麻煩。 我用了上面相同的方法,但沒有用。 它給了我以下錯誤錯誤:JSON 解析錯誤詳細信息:------------------------------------ ---------- 錯誤:JSON 解析錯誤代碼:8001 上下文:無效 json object [{"Date":"2021-07-03 17:12:16","Amt":50.00

我可以就如何使用 json_extract_path_text 提取它獲得幫助嗎? 我發現的另一種有效方法是使用 regexp_substring。

第二個字符串是 json 數組(方括號),而不是 object(大括號)。 該數組包含一個元素,即 object。因此您需要在使用 JSON_EXTRACT_PATH_TEXT() 之前從數組中提取 object。

它的連接點是 JSON_EXTRACT_ARRAY_ELEMENT_TEXT()。

把這些放在一起我們得到:

JSON_EXTRACT_PATH_TEXT(
  JSON_EXTRACT_ARRAY_ELEMENT_TEXT( <column>, 0)
  , 'Amt')

你可以像下面的例子一樣使用 json_extract_path_text

json_extract_path_text(json_columnName, json_keyName) = 比較值

更多你可以參考這篇文章

https://docs.aws.amazon.com/redshift/latest/dg/JSON_EXTRACT_PATH_TEXT.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM