Package com.streamconverter.examples
Class NavigateAndRuleExample
java.lang.Object
com.streamconverter.examples.NavigateAndRuleExample
例2: Navigate系コマンド × IRule(CSV/JSON/XML)
StreamConverter の「特定フィールドに変換ルールを適用する」パターンを示す。
この例で学べること:
CSVPath.of(String)/TreePath.fromJson(String)/TreePath.fromXml(String)による要素指定の方法IRuleはラムダ式(s -> s.toUpperCase())でも実装できるIRuleをクラスで実装することで複雑な変換ロジックを表現できる- 組み込み Rule(
TrimRule,LowerCaseRule,CamelToSnakeCaseRule)の使い方 ChainRuleで複数の Rule を連鎖させる方法- CSV/JSON/XML のいずれも同じ Navigate + Rule のパターンで処理できること
シナリオ(CSV 3段パイプライン):
[コマンド1] CsvNavigateCommand(name列) + ChainRule(TrimRule → LowerCaseRule)
商品名の前後空白を除去して小文字に統一
↓
[コマンド2] CsvNavigateCommand(price列) + カスタムIRule実装クラス(PriceFormattingRule)
価格を "¥1,234" 形式にフォーマット
↓
[コマンド3] CsvNavigateCommand(category列) + ラムダIRule
カテゴリを大文字に変換(ラムダで実装)
シナリオ(JSON 3段パイプライン):
[コマンド1] JsonNavigateCommand($.name) + ChainRule(TrimRule → LowerCaseRule) [コマンド2] JsonNavigateCommand($.category) + CamelToSnakeCaseRule(組み込みRuleの例) [コマンド3] JsonNavigateCommand($.sku) + ラムダIRule("SKU-" プレフィックス付与)
シナリオ(XML 2段パイプライン):
[コマンド1] XmlNavigateCommand(product/name) + ChainRule(TrimRule → LowerCaseRule) [コマンド2] XmlNavigateCommand(product/category) + CamelToSnakeCaseRule
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
NavigateAndRuleExample
public NavigateAndRuleExample()
-
-
Method Details
-
main
- Parameters:
args- コマンドライン引数(未使用)- Throws:
IOException- I/O エラー
-