日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

JSON函數

本文介紹JSON函數的基本語法及示例。

日志服務支持如下JSON函數。

重要
  • 在日志服務分析語句中,表示字符串的字符必須使用單引號('')包裹,無符號包裹或被雙引號("")包裹的字符表示字段名或列名。例如:'status'表示字符串status,status"status"表示日志字段status。

  • 如果日志字段的值為JSON類型且需要展開為多行,請使用unnest語法。更多信息,請參見UNNEST子句。

  • 如果字符串被解析成JSON類型失敗,則返回null。

  • 如果在采集過程中,JSON日志被截斷,則在使用JSON函數進行查詢與分析時,系統將報錯且中止查詢與分析。針對該錯誤,您可以使用TRY表達式捕獲異常信息,使得系統繼續執行查詢和分析操作。例如* | select message, try(json_parse(message))。更多信息,請參見TRY表達式。

函數名稱

語法

說明

支持SQL

支持SPL

json_array_contains函數

json_array_contains(x, value)

判斷JSON數組中是否包含某個值。

json_array_get函數

json_array_get(x, index)

獲取JSON數組中某個下標對應的元素。

×

json_array_length函數

json_array_length(x)

計算JSON數組中元素的數量。

json_extract函數

json_extract(x, json_path)

從JSON對象或JSON數組中提取一組JSON值(數組或對象)。

json_extract_scalar函數

json_extract_scalar(x, json_path)

從JSON對象或JSON數組中提取一組標量值(字符串、整數或布爾值)。類似于json_extract函數。

json_extract_bool函數

json_extract_bool(x, json_path)

從JSON對象或JSON數組中提取boolean值。

×

json_extract_long函數

json_extract_long(x, json_path)

從JSON對象或JSON數組中提取bigint值。

×

json_extract_double函數

json_extract_double(x, json_path)

從JSON對象或JSON數組中提取double值。

×

json_format函數

json_format(x)

把JSON類型轉換為字符串類型。

json_parse函數

json_parse(x)

把字符串類型轉換為JSON類型。

json_size函數

json_size(x, json_path)

計算JSON對象或數組中元素的數量。

json_array_contains函數

json_array_contains函數用于判斷JSON數組中是否包含某個值。

語法

json_array_contains(x, value)

參數說明

參數

說明

x

參數值為JSON數組。

value

數值。

返回值類型

boolean類型。

示例

判斷JSON數組[1, 2, 3]中是否包含2。

  • 查詢和分析語句(調試

    * | SELECT json_array_contains('[1, 2, 3]', 2)
  • 查詢和分析結果json_array_contains

json_array_get函數

json_array_get函數用于獲取JSON數組下標對應的元素。

語法

json_array_get(x, index)

參數說明

參數

說明

x

參數值為JSON數組。

index

JSON下標,從0開始。

返回值類型

varchar類型。

示例

返回JSON數組["a", [3, 9], "c"]下標為1的元素。

  • 查詢和分析語句(調試

    * | SELECT json_array_get('["a", [3, 9], "c"]', 1)
  • 查詢和分析結果json_array_get

json_array_length函數

json_array_length函數用于計算JSON數組中元素的數量。

語法

json_array_length(x)

參數說明

參數

說明

x

參數值為JSON數組。

返回值類型

bigint類型。

示例

  • 示例1:計算Results字段值中JSON元素的數量。

    • 字段樣例

      Results:[{"EndTime":1626314920},{"FireResult":2}]
    • 查詢和分析語句

      * | SELECT json_array_length(Results)
    • 查詢和分析結果json_array_length

  • 示例2:計算time字段值中JSON元素的數量。

    • 字段樣例

      time:["time_local","request_time","upstream_response_time"]
    • 查詢和分析語句

      * | SELECT json_array_length(time)
    • 查詢和分析結果json_array_length

json_extract函數

json_extract函數用于從JSON對象或JSON數組中提取一組JSON值(數組或對象)。

重要

針對非法的JSON類型,json_extract函數會報錯,建議您使用json_extract_scalar函數。

語法

json_extract(x, json_path)

參數說明

參數

說明

x

參數值為JSON對象或JSON數組。

json_path

JSON路徑,格式為$.store.book[0].title。更多信息,請參見如何設置json_path。

返回值類型

JSON格式的string類型。

示例

SQL

獲取Results字段中EndTime字段的值。

  • 字段樣例

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • 查詢和分析語句

    * | SELECT json_extract(Results, '$.0.EndTime')
  • 查詢和分析結果json_extract

SPL

獲取Results字段中EndTime字段的值。

  • 字段樣例

Results:[{"EndTime":1626314920},{"FireResult":2}]
  • SPL語句

* | extend a = json_extract(Results, '$.0.EndTime')
  • SPL結果

image.png

json_extract_scalar函數

json_extract_scalar函數用于從JSON對象或JSON數組中提取一組標量值(字符串、整數或布爾值)。

語法

json_extract_scalar(x, json_path)

參數說明

參數

說明

x

參數值為JSON對象或JSON數組。

json_path

JSON路徑,格式為$.store.book[0].title。更多信息,請參見如何設置json_path

返回值類型

varchar類型。

示例

SQL

Results字段中獲取RawResultCount字段的值,并將該值轉換為bigint類型進行求和。

  • 字段樣例

    Results:[{"EndTime":1626314920},{"RawResultCount":1}]
  • 查詢和分析語句

    * | SELECT sum(cast(json_extract_scalar(Results,'$.1.RawResultCount') AS bigint) )
  • 查詢和分析結果json_extract_scalar

SPL

Results字段中獲取RawResultCount字段的值。

  • 字段樣例

Results:[{"EndTime":1626314920},{"RawResultCount":1}]
  • SPL語句

* | extend a = json_extract_scalar(Results, '$.1.RawResultCount')
  • SPL結果image.png

json_extract_bool函數

json_extract_bool函數用于從JSON對象或JSON數組中提取boolean值,轉換失敗返回null。

語法

json_extract_bool(x, json_path)

參數說明

參數

說明

x

參數值為JSON類型。

json_path

JSON路徑,格式為$.store.book[0].title。更多信息,請參見如何設置json_path。

返回值類型

boolean類型。

示例

從JSON數組Results中提取boolean值。

  • 字段樣例

    Results:[{"ret":true},{"status":FALSE}]
  • 查詢和分析語句

    * | SELECT json_extract_bool(Results, '$.0.ret')
  • 查詢和分析結果

    image

json_extract_long函數

json_extract_long函數用于從JSON對象或JSON數組中提取bigint值,轉換失敗返回null。

語法

json_extract_long(x, json_path)

參數說明

參數

說明

x

參數值為JSON類型。

json_path

JSON路徑,格式為$.store.book[0].title。更多信息,請參見如何設置json_path。

返回值類型

bigint類型。

示例

從JSON數組Results中提取bigint值。

  • 字段樣例

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • 查詢和分析語句

    * | SELECT json_extract_long(Results, '$.0.EndTime')
  • 查詢和分析結果

    image

json_extract_double函數

json_extract_double函數用于從JSON對象或JSON數組中提取double值,轉換失敗返回null。

語法

json_extract_double(x, json_path)

參數說明

參數

說明

x

參數值為JSON類型。

json_path

JSON路徑,格式為$.store.book[0].title。更多信息,請參見如何設置json_path

返回值類型

double類型。

示例

從JSON數組Results中提取double值。

  • 字段樣例

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • 查詢和分析語句

    * | SELECT json_extract_double(Results, '$.0.EndTime')
  • 查詢和分析結果

    image

json_format函數

json_format函數用于將JSON類型轉化成字符串類型。

語法

json_format(x)

參數說明

參數

說明

x

參數值為JSON類型。

返回值類型

varchar類型。

示例

將JSON數組[1,2,3]轉換為字符串[1, 2, 3]。

  • 查詢和分析語句(調試

    * | SELECT json_format(json_parse('[1, 2, 3]'))
  • 查詢和分析結果json_format

json_parse函數

json_parse函數只用于將字符串類型轉化成JSON類型,判斷是否符合JSON格式。一般情況下,json_parse函數使用意義不大,如果您需要從JSON中提取值,建議使用json_extract_scalar函數。

語法

json_parse(x)

參數說明

參數

說明

x

參數值為字符串。

返回值類型

JSON類型。

示例

SQL

  • 示例1

    將字符串[1,2,3]轉換為JSON數組[1, 2, 3]。

    • 查詢和分析語句(調試

       * | SELECT json_parse('[1, 2, 3]')
    • 查詢和分析結果json_format

  • 示例2

    提取logging字段中的各個子字段。

    • 字段樣例json_parse

    • 查詢和分析語句(調試

      *| SELECT map_keys(try_cast(json_parse(logging) AS map(varchar, json)))
    • 查詢和分析結果json_parse

SPL

將字符串[1,2,3]轉換為JSON數組[1, 2, 3]。

  • SPL語句

 * | extend a = json_parse('[1, 2, 3]')
  • SPL結果

image.png

json_size函數

json_size函數用于計算JSON對象或JSON數組中元素的數量。

語法

json_size(x, json_path)

參數說明

參數

說明

x

參數值為JSON對象或JSON數組。

json_path

JSON路徑,格式為$.store.book[0].title。更多信息,請參見如何設置json_path

返回值類型

bigint類型。

示例

返回status字段中元素的數量。

  • 字段樣例

    Results:[{"EndTime":1626314920,"FireResult":2,"RawResults":[{"_col0":"1094"}]}]
  • 查詢和分析語句

    * | SELECT json_size(Results, '$.0.RawResults')
  • 查詢和分析結果json_size