TransformerRuleList - スコープ指定、グローバル
TransformerRuleList API を使用すると、さまざまなタイプの JSON および XML データを名前と値のペアの出力に変換するためのルールのリストを作成できます。
TransformerRuleList API は、Transformer および TransformerDefinition API と連動します。 これらの API を組み合わせて、構造化された JSON ドキュメント内の XML ノードまたは任意のエンティティを、名前と値のペアの出力に変換します。文字列、数値、その他のアレイなど、アレイ内のオブジェクトと要素を含む、サポートされている JSON エンティティ。
TransformerRuleList API を使用すると、ソースドキュメントのどのデータを出力に含めるか、およびソースデータをどのように変換するかを定義する変換ルールリストを作成できます。
TransformerDefinition API は、変換ルールリストを JSON/XML レコードパスに関連付けて、再利用可能な変換定義オブジェクトを定義します。変換定義オブジェクトを使用して、1 つ以上のソースドキュメントを変換できます。
Transformer API は、指定された変換ルールリストを使用して、一度に 1 つのデータエンティティで実際のデータ変換を実行し、目的の出力データを作成します。
TransformRuleList オブジェクトをインスタンス化する際は、そのオブジェクトで .fromJSON() または .fromXML() メソッドを使用して JSON または XML ソースドキュメントを記述するかどうかを定義する必要があります。例:
var trl = sn_tfrm.TransformerRuleList().fromJSON(); または var trl = sn_tfrm.TransformerRuleList().fromXML();
次に、addRule() メソッドを使用して、名前と値のペアとして出力に含める、ソースドキュメント内の各要素の変換ルールを定義します。
- テキストを連結する。
- 加算、減算、除算、乗算などの数学関数を実行する。
- 値の切り上げや切り下げを行う (round up/down、ceiling/floor)。
- ソースデータ要素を指定された値と比較するときに最小値と最大値のどちらを使用するかを定義する。
- 通貨コードを適用する。
- 異なる測定単位の間で変換する。
- データ要素をフォーマットする。
- パターンを適用する。
- 指定されたデータ要素を指定された値に置き換える。
- 文字列を分割および再配置する。
TransformerRuleList クラスは、スコープ指定、およびグローバルのサーバースクリプトで使用できます。スコープ対象のアプリケーションでこのクラスを使用する際は、sn_tfrm 名前空間識別子を使用します。また、この API をインスタンスで使用するには、Transformation Service プラグイン (com.glide.transform) をアクティブ化する必要があります。
TransformerRuleList - addRule(文字列 rule, 文字列 path)
関連する変換ルールリストに、出力内に作成するフィールドを定義するためのエントリーを作成します。
ソースドキュメント内の任意の要素に対してルールを作成できます。たとえば、.addRule('ticker', '$.quote.symbol') では、出力に「ticker」というフィールドを作成し、ソースの quote.signbol の値をコピーします。
addRule() を使用してルールを定義した後、thenAdd()、thenReplace()、および thenFloor() などのアダプターメソッドを使用して、ルールの出力データを操作します。1 つのルールに必要な数のアダプターメソッドを定義できます。addRule() の呼び出しの直後から次の addRule() の呼び出しまでのすべてのアダプターメソッドが、そのルールに適用されます。アダプターメソッドは累積され、すべてのアダプターメソッドの結果の最終値が出力フィールドに保存されます。
例えば、次のコードスニペットでは、thenMultiply() と thenRoundDown() が addRule('change_percentage', '$.quote.changePercent') に適用され、addRule('close_price', '$.quote.close') で新しいルールが開始されます。$.quote.changePercent 内の値が .011 の場合、最終的な出力値は「1」 (.011 * 100 が一の位に切り捨てられたもの) です。
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('close_price', '$.quote.close') addRule() メソッドは summary パラメーター .addRule('summary') もサポートしています。この実装では、出力内に名前フィールド「summary:」が作成されますが、ソースのフィールドに関連付けられません。その後、thenConcat() および thenConcatSymbol() のアダプターメソッドを使用して、サマリーフィールドの内容を変更できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| rule | 文字列 | 宛先の出力での要素の名前。 |
| path | 文字列 | オプション。ソースドキュメント内のデータ要素への JSONPath または XPath。 ルールに対して他のアダプターメソッドが定義されていない場合、thenConcat() および thenConcatSymbol() のアダプターメソッドでは 、このパラメーターを定義する必要はありません。他のすべてのアダプターメソッドにはこのパラメーターが必要です。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Stock Report 05022019 JSON')
.addRule('ticker', '$.quote.symbol')
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('close_price', '$.quote.close')
.thenAdaptCurrency('USD', false)
.addRule('summary')
.thenConcat('Shares of ')
.thenConcatSymbol('ticker')
.thenConcat(' closed at ')
.thenConcatSymbol('close_price');
TransformerRuleList - setName(文字列 name)
ログ記録のために、関連する TransformerRuleList オブジェクトの名前を定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | 関連する TransformerRuleList オブジェクトの識別に使用する名前。 API ではこの名前は強制されませんが、インスタンス内に固有のものがあると便利です。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Stock Report 05022019 JSON')
.addRule('ticker', '$.quote.symbol')
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('close_price', '$.quote.close')
.thenAdaptCurrency('USD', false)
.addRule('summary')
.thenConcat('Shares of ')
.thenConcatSymbol('ticker')
.thenConcat(' closed at ')
.thenConcatSymbol('close_price');
TransformerRuleList - thenAdaptCurrency(文字列 currencyCode, ブーリアン outputNumericCurrencyValue)
関連する addRule() 呼び出しで定義された出力フィールドに指定された通貨コードを関連付けるアダプターを、現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| currencyCode | 文字列 | USD、EUR、GBP などの宛先データ要素に関連付ける通貨コード。 |
| outputNumericCurrencyValue | ブーリアン | オプション。通貨コードを表示するかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Stock Report 05022019 JSON')
.addRule('ticker', '$.quote.symbol')
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('close_price', '$.quote.close')
.thenAdaptCurrency('USD', false)
.addRule('summary')
.thenConcat('Shares of ')
.thenConcatSymbol('ticker')
.thenConcat(' closed at ')
.thenConcatSymbol('close_price');
TransformerRuleList - thenAdaptDuration(文字列 inputDuration, 文字列 outputDuration)
ソースフィールドをある測定単位から別の測定単位 (分から秒、週から日など) に変換するアダプターを、現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| inputDuration | 文字列 | ソースフィールドの現在の測定単位。 有効な値:
|
| outputDuration | 文字列 | 出力でのソースフィールドの変換先となる測定単位。 有効な値:
|
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Stock Report 05022019 JSON')
.addRule('ticker', '$.quote.symbol')
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('close_price', '$.quote.close')
.thenAdaptCurrency('USD', false)
.addRule('daily', '$.quote.weekly')
.thenAdaptDuration('WEEK', 'DAY');
TransformerRuleList - thenAdd(数字 operand)
渡された値をソースフィールドに追加するアダプターを現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| operand | 番号 | ソースフィールドに追加する値。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList.fromJSON()
.setName('Stock Report 05182019 JSON')
.addSymbol('ticker', '$.symbol')
.addSymbol('change_percentage', '$.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addSymbol('trade_price', '$.current_price')
.thenAdaptCurrency('USD', false)
.addMultiply('$.trade_quantity')
.thenAdd('4.5');
TransformerRuleList - thenApplyMap(オブジェクト map)
関連付けられたソースフィールドで文字列のリストを検索し、出力内でその文字列を指定された置換値で置き換えるアダプターを、現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| map | オブジェクト | 名前と値のペア。
|
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
この例では、thenApplyMap() の呼び出しが [company_info] フィールド内のソーステキストで「Inc.」と「St.」を検索し、出力内の [company_info] フィールド内でそれを「Incorporated」と「Street」に置き換えます。
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Stock Report 05022019 JSON')
.addRule('ticker', '$.quote.symbol')
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('close_price', '$.quote.close')
.thenAdaptCurrency('USD', false)
.addRule('company_info', '$.quote.company_info')
.thenApplyMap({'Inc.': 'Incorporated', 'St.': 'Street'});
TransformerRuleList - thenApplyPattern(文字列 matchPattern, 文字列 outputPattern)
指定された正規表現パターンをソースフィールドの内容と照合し、その内容を 2 番目の正規表現パターンで置換または再フォーマットして、値を出力内に格納するアダプターを、現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| matchPattern | 文字列 | 置換または再フォーマットするテキストの検索に使用する正規表現パターン。 |
| outputPattern | 文字列 | 見つかったテキストの更新に使用する正規表現パターン。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
この例では、「Inc.」で終わる会社名を「Incorporated」に変換 (「Company Inc.」を「Company Incorporated」など) します。
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Stock Report 05022019 JSON')
.addRule('ticker', '$.quote.symbol')
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('close_price', '$.quote.close')
.thenAdaptCurrency('USD', false)
.addRule('company', '$.quote.company')
.thenApplyPattern('(.+)(\\w{3}\\.)', '$1Incorporated');
TransformerRuleList - thenCeiling(数字 operand)
渡された値で指定された小数点以下の桁でソースフィールドを切り上げるアクションを、現在のルールに追加します。
指定された小数点以下の桁数の値に基づいて単純に数字を丸める (四捨五入) のではなく、ceiling では常に切り上げます。例えば、2.156 と 2.152 の ceiling 値は、渡された値が小数点以下 2 桁であれば常に 2.16 です。一方、単純に丸めた場合、値はそれぞれ 2.16 と 2.15 になります。負の数の場合、ceiling 演算では数値が正に近くなり、-2.156 の ceiling 値は -2.15 です。一方、同じ数値を切り上げると、値はより負の値 (-2.16) になります。
| 名前 | タイプ | 説明 |
|---|---|---|
| operand | 数字 | 小数点より右側の、数値を切り上げる (ceiling を適用する) 小数部の桁。 例えば、この値が 2 で、ソースデータ要素が 6.421 の場合、結果の値は 6.43 です。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Mortgage Rates 05022019 JSON')
.addRule('interest_rate', '$.quote.interest_rate')
.thenCeiling('2') // Always round the interest rate up to the hundredths place
.addRule('monthly_payment', '$.quote.total_loan_amount')
.thenDivideBy('180');
TransformerRuleList - thenConcat(文字列 value)
渡された文字列を出力フィールドに連結するアダプターを、現在のルールに追加します。
他のアダプターメソッドと異なり、このメソッドはソースフィールドに適用する必要はありません。この方法を使用して、出力内にまったく新しいデータ文字列を作成できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| value | 文字列 | 現在のデータ要素の末尾に連結するテキスト。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Stock Report 05022019 JSON')
.addRule('ticker', '$.quote.symbol')
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('close_price', '$.quote.close')
.thenAdaptCurrency('USD', false)
.addRule('summary')
.thenConcat('Shares of ')
.thenConcatSymbol('ticker')
.thenConcat(' closed at ')
.thenConcatSymbol('close_price');
TransformerRuleList - thenConcatSymbol(文字列 symbol)
ルールリストで以前に定義されたフィールドの値を現在の出力フィールドに連結するアダプターを、現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| symbol | 文字列 | 出力フィールドに追加するルールリスト要素の名前。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Stock Report 05022019 JSON')
.addRule('ticker', '$.quote.symbol')
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('close_price', '$.quote.close')
.thenAdaptCurrency('USD', false)
.addRule('summary')
.thenConcat('Shares of ')
.thenConcatSymbol('ticker')
.thenConcat(' closed at ')
.thenConcatSymbol('close_price');
TransformerRuleList - thenDivideBy(数字 operand)
ソースフィールドを渡された値で割るアダプターを、現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| operand | 数字 | ソースフィールドを割る値。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Stock Report 05022019 JSON')
.addRule('ticker', '$.quote.symbol')
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('dividend_per_share', '$.quote.total_dividend')
.thenDivideBy('$.quote.total_shares');
TransformerRuleList - thenDivideInto(数字 operand)
渡された値をソースフィールドで割るアダプターを、現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| operand | 数字 | ソースフィールドで割る値。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Stock Report 05022019 JSON')
.addRule('ticker', '$.quote.symbol')
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('dividend_per_share', '$.quote.total_shares')
.thenDivideInto('$.quote.total_dividends');
TransformerRuleList - thenFloor(数字 operand)
渡された値で指定された小数点以下の桁でソースフィールドを切り捨てて、その値を出力に格納するアクションを、現在のルールに追加します。
指定された小数点以下の桁数の値に基づいて単純に数字を丸める (四捨五入) のではなく、floor では常に切り捨てます。例えば、2.156 と 2.152 の floor 値は、渡された値が小数点以下 2 桁であれば常に 2.15 です。一方、単純に丸めた場合、値はそれぞれ 2.16 と 2.15 になります。負の数の場合、floor 演算では数値がより負の値になり、-2.156 の floor 値 は -2.16 です。一方、同じ数値を切り捨てると、値は正に近い値 (-2.15) になります。
| 名前 | タイプ | 説明 |
|---|---|---|
| operand | 数字 | 小数点より右側の、数値を切り捨てる (floor を適用する) 小数部の桁。 例えば、この値が 2 で、ソースデータ要素が 6.427 の場合、結果の値は 6.42 です。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Mortgage Rates 05022019 JSON')
.addRule('interest_rate', '$.quote.interest_rate')
.thenFloor('2') // Always round the interest rate down to the hundreths place
.addRule('monthly_payment', '$.quote.total_loan_amount')
.thenDivideBy('180');
TransformerRuleList - thenFormat(文字列 matchPattern, 文字列 outputPattern)
指定された照合パターンに一致するソースフィールドの内容を指定された出力パターンで再フォーマットするアダプターを、現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| matchPattern | 文字列 | ソースフィールドと照合するパターン。 有効な値:
|
| outputPattern | 文字列 | 出力内の内容に置き換えるパターン。 有効な値:
|
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
この例では、見積もり日を YYYY/MM/DD から YYYY MM-DD に再フォーマットします。
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Stock Report 05022019 JSON')
.addRule('ticker', '$.quote.symbol')
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('close_price', '$.quote.close')
.thenAdaptCurrency('USD', false)
.addRule('date', '$.quote.date')
.thenFormat('####/##/##', '#### ##-##');
TransformerRuleList - thenMax(数字 operand)
渡された値をソースフィールドと比較し、2 つの値のうち大きい方を出力フィールドにコピーするアダプターを、現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| operand | 数字 | ソースフィールドと比較する値。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Mortgage Rates 05022019 JSON')
.addRule('lowest_interest_rate', '$.quote.interest_rate')
.thenMax('3.5') // Interest rate cannot be less than 3.5%
.addRule('dividend_per_share', '$.quote.total_shares')
.thenDivideInto('$.quote.total_dividends');
TransformerRuleList - thenMin(数字 operand)
渡された値をソースフィールドと比較し、2 つの値のうち小さい方を出力フィールドにコピーするアダプターを、現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| operand | 数字 | ソースフィールドと比較する値。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Stock Report 05022019 JSON')
.addSymbol('broker_fee_percentage', '$.quote.broker_fee')
.thenMin('10') // Maximum of 10% broker fee
.addSymbol('dividend_per_share', '$.quote.total_shares')
.thenDivideInto('$.quote.total_dividends');
TransformerRuleList - thenMultiply(数字 operand)
ソースフィールドに渡された値を乗じるアダプターを、現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| operand | 数字 | ソースフィールドに乗じる値。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Stock Report 05022019 JSON')
.addRule('ticker', '$.quote.symbol')
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('close_price', '$.quote.close')
.thenAdaptCurrency('USD', false)
.addRule('summary')
.thenConcat('Shares of ')
.thenConcatSymbol('ticker')
.thenConcat(' closed at ')
.thenConcatSymbol('close_price');
TransformerRuleList - thenReplace(文字列 matchString, 文字列 replaceString)
ソースフィールド内から指定した文字列に一致するテキストをすべて検索し、更新された文字列に置き換えるアダプターを、現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| matchString | 文字列 | 置き換えるテキストを識別するためにソースフィールドと照合する文字列。 |
| replaceString | 文字列 | 一致するテキストに置き換える文字列。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
この例では、「Inc.」で終わる会社名を「Incorporated」に変換 (「Company Inc.」を「Company Incorporated」など) します。
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Stock Report 05022019 JSON')
.addRule('ticker', '$.quote.symbol')
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('close_price', '$.quote.close')
.thenAdaptCurrency('USD', false)
.addRule('company', '$.quote.company')
.thenReplace('Inc.', 'Incorporated');
TransformerRuleList - thenRoundDown(数字 operand)
渡された値で指定された小数点以下の桁でソースフィールドを切り捨てるアダプターを、現在のルールに追加します。
負の数の場合、thenRoundDown() メソッドでは数値が正に近い数になります。すなわち、-2.156 を切り捨てると -2.15 になります。thenFloor() メソッドでは、同じ数値がより負の数 (-2.16) になります。
| 名前 | タイプ | 説明 |
|---|---|---|
| operand | 数字 | 小数点より右側の、数値を切り捨てる小数部の桁。 例えば、この値が 2 で、ソースデータ要素が 6.427 の場合、結果の値は 6.42 です。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList90
.fromJSON()
.setName('Mortgage Rates 05022019 JSON')
.addRule('interest_rate', '$.quote.interest_rate')
.thenRoundDown('2') // Always round the interest rate down to the hundredths place
.addRule('monthly_payment', '$.quote.total_loan_amount')
.thenDivideBy('180');
TransformerRuleList - thenRound Up(数字 operand)
渡された値で指定された小数点以下の桁でソースデータ要素を切り上げるアダプターを、現在のルールに追加します。
負の数の場合、thenRoundUp() メソッドでは数値がより負の数になります。すなわち、-2.156 を切り上げると -2.16 になります。thenCeiling() メソッドでは、同じ数値が正に近い数 (-2.15) になります。
| 名前 | タイプ | 説明 |
|---|---|---|
| operand | 数字 | 小数点より右側の、数値を切り上げる小数部の桁。 例えば、この値が 2 で、ソースデータ要素が 6.422 の場合、結果の値は 6.43 です。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Mortgage Rates 05022019 JSON')
.addRule('interest_rate', '$.quote.interest_rate')
.thenRoundUp('2') // Always round the interest rate up to the hundredths place
.addRule('monthly_payment', '$.quote.total_loan_amount')
.thenDivideBy('180');
TransformerRuleList - thenSplit(文字列 splitPattern, 文字列 replaceString)
ソースフィールド内の文字列を分割、再編成、および置換して出力フィールドに保存するアダプターを、現在のルールに追加します。
splitPattern パラメーターは、ソーステキストの文字列をセグメントに分割する方法を示します。このパラメーターは、スペース (「 」)、カンマ (「,」)、セミコロン (「;」) などの一般的な文字区切りに設定できます。また、「name」などの任意の文字列を指定することもできます。例えば、ソーステキストが「Smith John Michael」で splitPattern がスペースの場合、利用可能なセグメントは「Smith」、「John」、および「Michael」です。セグメントを参照するには、$# を使用します。この # はソーステキスト文字列内のセグメントの順序番号です。例えば、メソッド呼び出しが thenSplit(' ', '$2 $3 $1') の場合、出力は「John Michael Smith」になります。さらに、出力パターン内に thenSplit(' ', 'First name: $2 Middle name: $3 Last name: $1') などの定数を追加できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| splitPattern | 文字列 | テキストをセグメントに分割する方法を示す文字列。 |
| replaceString | 文字列 | セグメント参照と定数を含む出力文字列を定義する文字列。すべてのセグメントを参照する必要はありません。 splitPattern で定義されたセグメントは $# を使用して参照します。この # はソースデータ要素内のセグメントの順序番号です。ソースデータ要素全体を参照するには、$0 を使用します。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
この例では、ソースデータの中では CEO の名前が姓名の順で、出力ではそれが名姓の順に変換されます。
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Stock Report 05022019 JSON')
.addRule('ticker', '$.quote.symbol')
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('close_price', '$.quote.close')
.thenAdaptCurrency('USD', false)
.addRule('CEO', '$.quote.CEO')
.thenSplit(',', '$2 $1');
TransformerRuleList - thenSubtract(数字 operand)
渡された値をソースフィールドから減算し、その値を出力フィールドに格納するアダプターを、現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| operand | 数字 | ソースデータ要素から減算する値。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の TransformerRuleList オブジェクト。 |
var transformerRuleList = new sn_tfrm.TransformerRuleList()
.fromJSON()
.setName('Stock 05182019 JSON')
.addRule('ticker', '$.quote.symbol')
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('close_price', '$.quote.close')
.thenAdaptCurrency('USD', false)
.addRule('trade_price', '$.quote.current_price')
.addMultiply('$.quote.trade_quantity')
.thenSubtract('$.quote.discount_dollars');