すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:構造化データ関数

最終更新日:Aug 28, 2024

このトピックでは、構造化データ関数の構文とパラメーターについて説明します。 構造化データには、JSONデータとXMLデータが含まれます。 このトピックでは、関数の使用方法の例も示します。

関数

カテゴリ

機能

説明

JSON

json_select

JMESPathを使用して、JSON式から特定の値を抽出または計算します。

json_parse

値をJSONオブジェクトに解析します。

XML

xml_to_json

Converts XMLデータにJSONデータ。

json_select

json_select関数は、JMESPathを使用してJSON式から特定の値を抽出または計算します。

  • 構文

    json_select(value, jmes, default=None, restrict=False)
  • パラメーター

    パラメーター

    データ型

    必須/任意

    説明

    value

    文字列とJSON

    必須

    入力JSON式またはフィールド。

    jmes

    String

    必須

    JMESPath式。 この式は、値が抽出されるフィールドを指定します。

    default

    String

    任意

    指定されたフィールドが存在しない場合に返される値。 デフォルト値: なし。フィールドが返されないことを示します。

    制限する

    Bool

    任意

    指定されたフィールドの値が無効なJSON形式の場合、制限モードを有効にするかどうかを指定します。 デフォルト値:False。 有効な値:

    • False: 無効な形式の問題は無視され、システムはデータの変換を続行します。 defaultパラメーターの値が返されます。

    • True: 無効な形式の問題が報告され、システムはデータの変換を停止します。 ログは破棄されます。

  • レスポンス

    抽出された値が返されます。

    • 例1: コンテンツフィールドから名前フィールドの値を抽出します。

      • 生ログ

        content:  {"name": "xiaoming", "age": 10}
      • 変換ルール

        e_set("json_filter",json_select(v("content"), "name"))
      • 結果

        content:  {"name": "xiaoming", "age": 10}
        json_filter:  xiaoming
    • 例2: nameフィールドのすべての値をcontentフィールドから抽出します。

      • 生ログ

        content:  {"name": ["xiaoming", "xiaowang", "xiaoli"], "age": 10}
      • 変換ルール

        e_set("json_filter", json_select(v("content"), "name[*]"))
      • 結果

        content:  {"name": ["xiaoming", "xiaowang", "xiaoli"], "age": 10}
        json_filter:  ["xiaoming", "xiaowang", "xiaoli"]
    • Example 3: Extract値name3のフィールドから内容フィールド。 name3フィールドが存在しない場合、デフォルトパラメーターの値が返されます。

      • 生ログ

        content:  {"name": "xiaoming", "age": 10}
      • 変換ルール

        e_set("json_filter", json_select(v("content"), "name3", default="None"))
      • 結果

        content:  {"name": "xiaoming", "age": 10}
        json_filter: None
    • 例4: name-test要素の値をcontentフィールドから抽出します。

      • 生ログ

        content:  {"name": {"name-test":"xiaoming"}, "age": 10}
      • 変換ルール

        e_set("json_filter", json_select(v("content"), 'name."name-test"', default=None))
      • 結果

        content:  {"name": {"name-test":"xiaoming"}, "age": 10}
        json_filter: xiaoming
    • 例5: name-test要素の値をcontentフィールドから抽出します。 name-test要素が存在しない場合、フィールドは返されません。

      • 生ログ

        content:  {"name": {"name.test":"xiaoming"}, "age": 10}
      • 変換ルール

        e_set("json_filter", json_select(v("content"), 'name."name-test"', default=None))
      • 結果

        content:  {"name": {"name-test":"xiaoming"}, "age": 10}

json_parse

json_parse関数は、値をJSONオブジェクトに解析します。

  • 構文

    json_parse(value, default=None, restrict=False)
  • パラメーター

    パラメーター

    データ型

    必須/任意

    説明

    value

    String

    必須

    入力フィールド。

    default

    String

    任意

    指定されたフィールドが存在しない場合に返される値。 デフォルト値: なし。フィールドが返されないことを示します。

    制限する

    Bool

    任意

    指定されたフィールドの値が無効なJSON形式の場合、制限モードを有効にするかどうかを指定します。 デフォルト値:False。 有効な値:

    • False: 無効な形式の問題は無視され、システムはデータの変換を続行します。 The値のデフォルトパラメータはreturned.

    • True: 無効な形式の問題が報告され、システムはデータの変換を停止します。 ログは破棄されます。

  • レスポンス

    JSONオブジェクトが返されます。

    • 例1: コンテンツフィールドのJSON値を抽出します。

      • 生ログ

        content:  {"abc": 123, "xyz": "test" }
      • 変換ルール

        e_set("json", json_parse(v("content")))
      • 結果

        content:  {"abc": 123, "xyz": "test" }
        json:  {"abc": 123, "xyz": "test"}
    • 例2: コンテンツフィールドの値を抽出します。 値がJSON形式でない場合、デフォルトパラメーターの値が返されます。

      • 生ログ

        content: this is not json
      • 変換ルール

        e_set("json", json_parse(v("content"), default="FFF", restrict=False))
      • 結果

        content: this is not json
        json: FFF

xml_to_json

xml_to_json関数は、XMLデータをJSONデータに変換します。

  • 構文

    xml_to_json(source)
  • パラメーター

    パラメーター

    データ型

    必須/任意

    説明

    source

    String

    必須

    入力フィールド。

  • レスポンス

    JSON形式のデータが返されます。

    • 生ログ

      str : <data><country name="Liechtenstein"><rank>1</rank><year>2008</year><gdppc>141100</gdppc><neighbor name="Austria" direction="E"/><neighbor name="Switzerland" direction="W"/></country><country name="Singapore"><rank>4</rank><year>2011</year><gdppc>59900</gdppc><neighbor name="Malaysia" direction="N"/></country><country name="Panama"><rank>68</rank><year>2011</year><gdppc>13600</gdppc><neighbor name="Costa Rica" direction="W"/><neighbor name="Colombia" direction="E"/></country></data>
    • 変換ルール

      e_set("str_json",xml_to_json(v("str")))
    • 結果

      str:<data><country name="Liechtenstein"><rank>1</rank><year>2008</year><gdppc>141100</gdppc><neighbor name="Austria" direction="E"/><neighbor name="Switzerland" direction="W"/></country><country name="Singapore"><rank>4</rank><year>2011</year><gdppc>59900</gdppc><neighbor name="Malaysia" direction="N"/></country><country name="Panama"><rank>68</rank><year>2011</year><gdppc>13600</gdppc><neighbor name="Costa Rica" direction="W"/><neighbor name="Colombia" direction="E"/></country></data>
      str_json:{"data": {"country": [{"@name": "Liechtenstein", "rank": "1", "year": "2008", "gdppc": "141100", "neighbor": [{"@name": "Austria", "@direction": "E"}, {"@name": "Switzerland", "@direction": "W"}]}, {"@name": "Singapore", "rank": "4", "year": "2011", "gdppc": "59900", "neighbor": {"@name": "Malaysia", "@direction": "N"}}, {"@name": "Panama", "rank": "68", "year": "2011", "gdppc": "13600", "neighbor": [{"@name": "Costa Rica", "@direction": "W"}, {"@name": "Colombia", "@direction": "E"}]}]}}