MuleAPIのJSONでエスケープシーケンスの挙動を確認する
はじめに
文字にはエスケープシーケンスというタブや改行を表すときに、規定された特定の文字列の並びを利用して表現する文字列がある。
アプリケーションでデータを扱う場合に、エスケースシーケンスの挙動を考慮をしないと、例外を発生し正しくデータを処理できない。
MuleのAPIでエスケープシーケンスを含めメッセージを安全に扱うための調査を実施したので結果を説明する。
確認項目
確認した内容は以下の通り。
- 検証用Muleアプリケーションを作成する。
- Salesforceのリクエスト送信モジュールを作成する。
- Salesforceからリクエストを送信して挙動を確認する。
- ”¥”をエスケープしない場合はエラーが発生しる。
確認内容
1.検証用Muleアプリケーションを作成する。
リクエストのデータを読み取って、レスポンスマッピングする簡単なMuleアプリケーションを開発した。

2.Salesforceのリクエスト送信モジュールを作成する。
JSONで考慮すべきエスケープシーケンスは下記の通り。
RFC 8259 – The JavaScript Object Notation (JSON) Data Interchange Format
| No. | 説明 | 文字列 |
|---|---|---|
| 1 | ダブルクオーテーション | “ |
| 2 | \ | \ |
| 3 | / | / |
| 4 | バックスペース | \b |
| 5 | 改ページ | \f |
| 6 | 改行 | \n |
| 7 | 復帰 | \r |
| 8 | 水平タブ | \t |
| 9 | Unicode文字 | \uXXXX |
SalesforceのApexでリクエスト送信用のモジュールを作成し、エスケープシーケンスを送信する。

3.Salesforceからリクエストを送信して挙動を確認する。
Salesforceの実行結果のログは以下の通り。
正常にリクエストが解析されて正常なレスポンスが受信できることが確認できた。

アプリケーションログを確認した結果は以下の通り。

4.”¥”をエスケープしない場合はエラーが発生しる。
”¥”をエスケープしない場合は以下の通り。

POSTMANで送信する場合もエラーとなる。

アプリケーションログでエラーが発生していることが確認できる。

さいごに
いかがだったでしょうか?
ベンダー通しの打ち合わせの場で、突然聞かれると困るネタですね。
これを機に困らないようにしておきましょう!では、






