TransformerRuleList - スコープ対象、グローバル
TransformerRuleList API を使用すると、さまざまなタイプの JSON および XML データを名前と値のペアの出力に変換するためのルールのリストを作成できます。
この API は、 Transformer API および TransformerDefinition API と連携して機能します。 これらの API を組み合わせることで、XML ノードまたは構造化された JSON ドキュメント内の任意のエンティティを名前と値のペアの出力に変換します。文字列、数値、その他のアレイなどのアレイ内のオブジェクトや要素を含む、サポートされている 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() メソッドを使用して、出力に名前と値のペアとして含めるソースドキュメント内の各要素の変換ルールを定義します。
- テキストを連結します。
- 加算、減算、除算、乗算などの数学関数を実行します。
- 値を切り上げるか切り下げる (切り上げ/切り捨て、天井/床切り上げ)。
- ソースデータ要素を指定された値と比較するときに、最小値と最大値のどちらを使用するかを定義します。
- 通貨コードを適用します。
- 異なる測定単位間で変換します。
- データ要素の書式を設定します。
- パターンを適用します。
- 指定されたデータ要素を指定された値に置き換えます。
- 文字列を分割および再配置します。
TransformerRuleList クラスは、スコープ対象サーバースクリプトとグローバルサーバースクリプトの両方で使用できます。スコープ対象のアプリケーションでこのクラスを使用する場合は、 sn_tfrm 名前空間識別子を使用します。また、この API をインスタンスで使用できるようにするには、変換サービスプラグイン (com.glide.transform) をアクティブ化する必要があります。
TransformerRuleList - addRule(文字列ルール, 文字列パス)
出力に作成するフィールドを定義する関連する変換ルールリストにエントリを作成します。
ソースドキュメント内の任意の要素に対してルールを作成できます。たとえば、 .addRule('ticker', '$.quote.symbol') は、出力にフィールド "ticker" を作成し、ソースの quote.symbol の値をコピーします。
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 で 1 桁に切り捨てられます) です。
.addRule('change_percentage', '$.quote.changePercent')
.thenMultiply('100')
.thenRoundDown('0')
.addRule('close_price', '$.quote.close') addRule() メソッドはパラメータ summary もサポートしています。.addRule('summary') です。この実装では、出力に名前フィールド「summary:」が作成されますが、ソースのどのフィールドとも関連付けられません。その後、アダプターのメソッド thenConcat() と thenConcatSymbol() を使用して、サマリーフィールドの内容を変更できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| ルール | 文字列 | 宛先出力の要素の名前。 |
| パス | 文字列 | オプション。JSONPath または XPath をソースドキュメントのデータ要素に設定します。 アダプタメソッド thenConcat() および thenConcatSymbol() では、ルールに他のアダプタメソッドが定義されていない場合、このパラメーターを定義する必要はありません。他のすべてのアダプターメソッドには、このパラメーターが必要です。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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(文字列名)
ログ記録のために、関連する TransformerRuleList オブジェクトの名前を定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 名前 | 文字列 | 関連付けられた TransformerRuleList オブジェクトを識別するために使用する名前。 API はこの名前を強制的に一意にする必要はありませんが、インスタンス内で一意である場合は便利です。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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 など)。 |
| 出力数値通貨値 | ブール | オプション。通貨コードを表示するかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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 | 文字列 | 出力内でのソースフィールドの変換先の測定単位。 有効な値:
|
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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(数値オペランド)
渡された値をソースフィールドに追加するアダプタを現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| オペランド | 番号 | ソースフィールドに追加する値。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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(オブジェクトマップ)
関連付けられたソースフィールドで文字列のリストを検索し、出力内のそれらを指定された置換値に置き換えるアダプタを現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| マップ | オブジェクト | 名前と値のペア。
|
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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 番目の正規表現パターンに置き換え/再フォーマットして、その値を出力に保存するアダプタを現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 一致パターン | 文字列 | 置換/再書式設定するテキストの検索に使用する正規表現パターン。 |
| 出力パターン | 文字列 | 見つかったテキストを更新するために使用する正規表現パターン。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current TransformerRuleList オブジェクト。 |
この例では、Company Inc. から Company Incorporated のように、「Inc.」で終わる会社名は「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(数値オペランド)
現在のルールにアクションを追加して、渡された値で指定された小数点以下桁数でソースフィールドを切り上げます。
指定された小数点以下の桁の桁の値 (0 〜 4 は切り捨て、5 〜 9 は切り上げ) に基づいて数値が丸められる直線切り上げとは異なり、上限は常に切り上げられます。たとえば、2.156 と 2.152 の上限値は、小数点以下桁数 2 で渡された場合、常に 2.16 です。一方、直線丸めの場合、値はそれぞれ 2.16 と 2.15 になります。負の数の場合、天井値 -2.156 が -2.15 であるため、天井演算により数値がより正になります。一方、同じ数値を切り上げると、値はより負になり、-2.16になります。
| 名前 | タイプ | 説明 |
|---|---|---|
| オペランド | 番号 | 数値を切り上げる (上限を適用) する、小数点の右側の小数点以下の位置。 たとえば、この値が 2 で、ソースデータ要素が 6.421 の場合、結果の値は 6.43 になります。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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(文字列値)
現在のルールに、渡された文字列を出力フィールドに連結するアダプタを追加します。
他のアダプターメソッドとは異なり、このメソッドはソースフィールドに適用する必要はありません。このメソッドを使用して、出力にまったく新しいデータ文字列を作成できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| 値 | 文字列 | 現在のデータ要素の末尾に連結するテキスト。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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(文字列記号)
ルールリストで以前に定義したフィールドの値を現在の出力フィールドに連結するアダプタを現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 記号 | 文字列 | 出力フィールドに追加するルールリスト要素の名前。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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(数値オペランド)
ソースフィールドを渡された値で除算するアダプタを現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| オペランド | 番号 | ソースフィールドを除算する値。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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(数値オペランド)
渡された値をソースフィールドで除算するアダプタを現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| オペランド | 番号 | ソースフィールドを分割する値。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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(数値オペランド)
渡された値で指定された小数点以下桁数でソースフィールドを切り捨て、出力に保存するアダプターを現在のルールに追加します。
指定した小数点以下の桁の桁の値 (0 〜 4 は切り捨て、5 〜 9 は切り上げ) に基づいて数値が丸められる直線丸めとは異なり、フロアは常に切り捨てられます。たとえば、2.156 と 2.152 のフロア値は、小数点以下桁数 2 で渡された場合、常に 2.15 になります。一方、直線丸めの場合、値はそれぞれ 2.16 と 2.15 になります。負の数の場合、-2.156 の床値が -2.16 であるため、床演算により数値がより負になります。一方、同じ数値を切り捨てると、値はより正になります (-2.15)。
| 名前 | タイプ | 説明 |
|---|---|---|
| オペランド | 番号 | 数値を切り下げる (フロアを適用) する小数点以下の位置。 たとえば、この値が 2 で、ソースデータ要素が 6.427 の場合、結果の値は 6.42 になります。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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)
指定された一致パターンに一致するソースフィールドのコンテンツを指定された出力パターンで再フォーマットするアダプタを現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 一致パターン | 文字列 | ソースフィールドと照合するパターン。 有効な値:
|
| 出力パターン | 文字列 | 出力内のコンテンツを置き換えるパターン。 有効な値:
|
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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(数値オペランド)
渡された値をソースフィールドと比較し、2 つの値のうち大きい方を出力フィールドにコピーするアダプタを現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| オペランド | 番号 | ソースフィールドと比較する値。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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(数値オペランド)
渡された値をソースフィールドと比較し、2 つの値のうち小さい方を出力フィールドにコピーするアダプタを現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| オペランド | 番号 | ソースフィールドと比較する値。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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(数値オペランド)
ソースフィールドに渡された値を乗算するアダプタを現在のルールに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| オペランド | 番号 | ソースフィールドに乗算する値。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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)
指定された文字列に一致するソースフィールド内のすべてのテキストを検索し、更新された文字列に置き換える現在のルールにアダプタを追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 一致文字列 | 文字列 | 置換するテキストを識別するためにソースフィールドと照合する文字列。 |
| replaceString | 文字列 | 一致するテキストを置き換える文字列。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current TransformerRuleList オブジェクト。 |
この例では、Company Inc. から Company Incorporated のように、「Inc.」で終わる会社名は「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(数値オペランド)
渡された値で指定された小数点以下桁数にソースフィールドを切り下げるアダプターを現在のルールに追加します。
負の数の場合、 thenRoundDown() メソッドは数値をより正のものにします。-2.156 の切り捨て値は -2.15 です。thenFloor() メソッドは、同じ数値をより負の -2.16 にします。
| 名前 | タイプ | 説明 |
|---|---|---|
| オペランド | 番号 | 数値を切り下げる小数点以下の桁数。 たとえば、この値が 2 で、ソースデータ要素が 6.427 の場合、結果の値は 6.42 になります。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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 - thenRoundUp(数値オペランド)
渡された値で指定された小数点以下桁数にソースデータ要素を切り上げるアダプターを現在のルールに追加します。
負の数の場合、 thenRoundUp() メソッドは数値を負の数にします。-2.156 の切り上げ値は -2.16 です。thenCeiling() メソッドは、同じ数値をより正の -2.15 にします。
| 名前 | タイプ | 説明 |
|---|---|---|
| オペランド | 番号 | 数値を切り上げる小数点の右側の小数点以下の位置。 たとえば、この値が 2 で、ソースデータ要素が 6.422 の場合、結果の値は 6.43 になります。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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 Middlename: $3 Last name: $1') などの定数を出力パターン内に追加できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| 分割パターン | 文字列 | テキストをセグメントに分割する方法を示す文字列。 |
| replaceString | 文字列 | セグメント参照や定数を含む出力文字列を定義する文字列。すべてのセグメントを参照する必要はありません。 $# を使用して splitPattern によって定義されたセグメントを参照します。ここで、# はソースデータ要素内のセグメントの順序の番号です。$0 を使用してソースデータ要素全体を参照します。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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(数値オペランド)
現在のルールに、渡された値をソースフィールドから減算し、出力フィールドに格納するアダプタを追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| オペランド | 番号 | ソースデータ要素から減算する値。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | Current 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');