System.JSON.Utils.TJsonTextUtils.WriteEscapedString
Delphi
class procedure WriteEscapedString(const Writer: TTextWriter; const Str: string; Delimiter: Char; AppendDelimiters: Boolean; const CharEscapeFlags: array of Boolean; StringEscapeHandling: TJsonStringEscapeHandling; var WriteBuffer: TCharArray);
C++
__classmethod void __fastcall WriteEscapedString(System::Classes::TTextWriter* const Writer, const System::UnicodeString Str, System::WideChar Delimiter, bool AppendDelimiters, const bool *CharEscapeFlags, const int CharEscapeFlags_High, System::Json::Types::TJsonStringEscapeHandling StringEscapeHandling, System::DynamicArray<System::WideChar> &WriteBuffer);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
procedure function |
public | System.JSON.Utils.pas System.JSON.Utils.hpp |
System.JSON.Utils | TJsonTextUtils |
説明
指定された文字列から JSON 文字列を生成します。
WriteEscapedString が受け取るパラメータは次のとおりです。
Writer
: WriteEscapedString で結果となる JSON 文字列の生成に使用されるテキスト ライタです。Str
: JSON 文字列に変換される文字列です。AppendDelimiters
: 結果として得られる文字列を引用文字で囲む(True
)か囲まない(False
)かを指定します。Delimiter
:AppendDelimiters
がTrue
の場合に結果の JSON 文字列の先頭と末尾に追加される引用文字です。結果として得られる JSON 文字列が適切な JSON 文字列となるには、この文字が一重引用符(')か二重引用符(")のどちらかでなければなりません。CharEscapeFlags
: 文字エスケープ フラグの配列です。詳細については、この後の「文字エスケープ」を参照してください。StringEscapeHandling
: WriteEscapedString で使用される文字エスケープの種類を指定します。WriteBuffer
: WriteEscapedString の内部で使用されるバッファです。
文字エスケープ
WriteEscapedString でエスケープする文字は次のとおりです。
CharEscapeFlags
にTrue
フラグが含まれている文字。- 対応するフラグが
CharEscapeFlags
にない文字(StringEscapeHandling
が TJsonStringEscapeHandling.EscapeNonAscii の場合)。
WriteEscapedString では、Unicode エスケープ シーケンスを使ってほとんどの文字をエスケープします。次の表には、WriteEscapedString でそれとは異なるエスケープを行う文字のみ示します。
文字 | エスケープされた文字 |
---|---|
タブ |
|
改行 |
|
復帰(キャリッジ リターン) |
|
改ページ |
|
バックスペース |
|
バックスラッシュ |
|
二重引用符* |
|
一重引用符* |
|
- *
StringEscapeHandling
が TJsonStringEscapeHandling.EscapeHtml の場合、WriteEscapedString では、Unicode エスケープ シーケンスを使って一重引用符と二重引用符をエスケープします。