このトピックでは、構造化データ関数の構文とパラメーターについて説明します。 構造化データには、JSONデータとXMLデータが含まれます。 このトピックでは、関数の使用方法の例も示します。
関数
カテゴリ | 機能 | 説明 |
JSON | JMESPathを使用して、JSON式から特定の値を抽出または計算します。 | |
値をJSONオブジェクトに解析します。 | ||
XML | 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"}]}]}}