JSON文字列エスケープ
Say "hello"と改行、worldは、Say \"hello\"\nworldになります。エスケープは3か所で、周りの文書を壊さずに二重引用符の間へ貼り付けられます。元の文字にも戻せ、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Say "hello" world
- 計算モード
- Encode
- 結果
- Say \"hello\"\nworld
- エンコード
- json_string
- 入力の長さ
- 17
- 出力の長さ
- 20
経路は完全に決定的で、同じテキストとモードは常に同じ結果を返し、ネットワーク呼び出し・乱数ソルト・日付依存の近道はありません。簡単な確認として、引用符と改行を含む行をバックスラッシュ形式にエンコードし、二重バックスラッシュのパスを実セパレータへデコードできます。
引用符ひとつで文書全体が壊れる理由
データ文書では、文字列は二重引用符で囲まれ、エスケープされていない最初の引用符でそこが終わります。そのため、文字列の一部である引用符には前にバックスラッシュを付け、エスケープの目印であるバックスラッシュ自体は二重にし、改行やタブなどの制御文字はそのまま書けません。例では、Say "hello"と改行、worldに3か所のエスケープが必要で、2つの引用符と改行が対象となり、17文字が20文字になります。結果を引用符の間に貼れば、文書は壊れません。
元の文字に戻す処理と、見つけてくれる間違い
復号はその逆で、引用符、バックスラッシュ、スラッシュ、後退、改ページ、改行、復帰、タブの短い書き方と、バックスラッシュとuに4桁を続ける書き方を読み取り、本来の文字に戻します。バックスラッシュを二重にしたファイルのパスは、区切りが1つずつの形に戻ります。不完全な並びや使えない組み合わせ、単独の引用符、そのままの制御文字があれば、誤りを通さずに知らせて止まります。同じ文字列と同じ選択なら、結果は常に同じです。
よくある質問
エンコードでどの文字がエスケープされますか?
エンコードは二重引用符、バックスラッシュ、バックスペース、フォームフィード、改行、復帰、タブ、および U+0000–U+001F の他の制御を \uXXXX として書き換えます。その他の文字は変わりません。
結果は決定的ですか?
はい。 同じテキストとモードは常に同じ結果を返し、ネットワーク・乱数・日付依存の挙動はありません。
外側の二重引用符も付けてくれますか?
いいえ。引用符の間に入る中身だけを返すので、文書側の開き引用符と閉じ引用符はそのまま残ります。復号するときも、引用符の内側だけを貼り付けてください。
引用符の中で改行はどう書きますか?
バックスラッシュとnで書きます。タブはバックスラッシュとt、復帰はバックスラッシュとrになり、短い書き方がない制御文字はバックスラッシュとuに4桁の十六進数を続けて表します。
復号で文字列が受け付けられないのはなぜですか?
不完全な並び、使えない文字が続くバックスラッシュ、単独の二重引用符、そのままの制御文字など、正しいエスケープ済みの文字列に入らないものが含まれているためです。推測で直さず、その場で止めて知らせます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/json-string-escape \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Say \"hello\"\\n"}'const res = await fetch("https://api.kit.forhosting.com/enc/json-string-escape", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Say \"hello\"\\n"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/json-string-escape",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Say \"hello\"\\n"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/json-string-escape", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Say \\"hello\\"\\\\n"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Say \"hello\"\\n"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/json-string-escape", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Say \"hello\"\\n"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.json_string_escape",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
このJSON文字列エスケーパーは、プレーンテキストをJSON文字列値の内側で必要なエスケープ形式に変換し、エスケープ済みの内容を貼り付けると通常の文字へ同じ対応で戻します。エンコードは二重引用符・バックスラッシュ・制御文字を書き換え、手書きのペイロードやテンプレート、ログ行がJSONの引用符の間に安全に収まり、周囲の文書を壊さないようにします。デコードは標準のJSONエスケープ(引用符、バックスラッシュ、任意のスラッシュ、バックスペース・フォームフィード・改行・復帰・タブの短縮形、および4桁のuエスケープ)を受け付け、不完全な列、不正なバックスラッシュ対、内容中の生の二重引用符、未エスケープの制御文字では明確に失敗し、入力ミスが本番へ静かに混入しないようにします。ペイロードの衛生管理やフィクスチャの整理にはブラウザで無料で使い、CIやバックエンドで再現可能なJSON文字列変換が必要なときは成功リクエストあたり $0.002 のAPIを呼び出してください。
JSON文字列エスケープとは何か、このツールが返すもの
リテラルの二重引用符はバックスラッシュ付きの引用符対として書き、リテラルのバックスラッシュは二重化し、U+0000 から U+001F までの制御文字は短縮形があればそれで、なければ4桁のuエスケープで書かなければなりません。改行・タブ・復帰・フォームフィード・バックスペースには、フィクスチャを読みやすく保つ周知の短縮形があります。本ページはエンコード経路でその符号化集合を、デコード経路でその逆を実装します。壊れた列の部分的な黙殺はありません。JSONの文字列値は二重引用符で区切られ、その引用符の間に現れ得る文字は ECMA-404 と各言語で使われる JSON.stringify の規則に制約されます。応答は文字列内容のみであり、完全なJSON文書の外側の引用符を足したり外したりはしません。完全なJSONパーサと異なり、このランディングはオブジェクト・配列・数値・入れ子構造を検証せず、文字列内容のエスケープ契約だけに答えます。JSON応答には常に変換後文字列の result、encode または decode を示す mode、固定の encoding 値 json_string、サイズ検証用の input_length と output_length が含まれます。エンコードは escapes_applied、デコードは escapes_resolved も報告し、いくつの特殊文字またはエスケープ列が書き換えられたかを確認できます。すべてのバックスラッシュ対が合法なJSONであるか、そうでなければ invalid_input で失敗します。文書単位の解析、整形表示、スキーマ検証が必要な場合は専用エンドポイントを使い、本ランディングは手作業で断片を組み立て・修復するフィクスチャとAPI利用者向けに、文字列のエスケープ/アンエスケープ契約だけを安定した出力で提供します。
text と mode の読み方、結果が再現可能である理由
mode の既定は encode で、decode を明示的に受け付けます。別名 op、direction、action は同じ切替に対応し、escape や unescape も同義語として受け付けます。デコードはバックスラッシュで始まる列を走査します。引用符、バックスラッシュ、スラッシュ、五つの制御短縮形、およびちょうど4桁の十六進に続く u です。推奨のペイロード欄は text で、別名 input、value、s、payload があり、フォーム・クエリ文字列・SDKクライアントが列名を変えずに同じ契約を再利用できます。エンコードは文字列を UTF-16 符号単位で走査し、JSONがエスケープを要求する文字だけを置換し、文字・数字・通常のUnicodeはそのまま残して読みやすい文面を保ちます。バックスラッシュは引用符や制御文字と同じ左から右の一回の通過で書き換わるため、文字列内容に関する JSON.stringify の文字規則と一致する一貫したエスケープが得られます。末尾の不完全なバックスラッシュ、JSON集合外の短縮エスケープ、十六進4桁のないuエスケープ、生の二重引用符、未エスケープの制御文字は、問題を名指しするメッセージ付きで invalid_input を上げます。長さ上限の十万文字は Worker のメモリを予測可能に保ちつつ、テンプレート・サンプルペイロード・多くの貼り付けバッファを覆います。このページの無料ブラウザ実行と有料APIを組み合わせれば、JSONエスケープ表を自ら再実装せずに自動化パイプライン内で同一の写像を得られます。無効入力は invalid_input を返し課金されないため、検証は安価なまま成功変換は1件あたり固定価格 $0.002 です。
開発ワークフローにおけるJSON文字列エスケープ/アンエスケープの位置づけ
パイプライン作者はレガシー系からのエスケープ過多なエクスポートをデコードし、アプリコードがリテラルのバックスラッシュnではなく真の改行や引用符で扱えるようにします。フロントエンドとバックエンドのチームは、引用付きJSONフィールドへ入れる前に動的なタイトルやラベルをエンコードし、一つの引用符・バックスラッシュ・改行が周囲の文書を壊さないようにします。品質エンジニアは契約テスト用に決定的なエンコード/デコード対を生成し、JSON文字列対応を謳うミドルウェアがリリース間で非標準のエスケープ表へ静かに切り替わらないようにします。教育者は完全なJSON文書とJSON文字列値、その値内で仕様が許す小さなエスケープ集合の違いを教えるときに同じ道具を使います。本ページでは作業はすべてブラウザ内で行われ、API経由では成功した照会ごとに $0.002 がかかり、検証失敗は課金されず、応答後に何も保存されません。無料の対話的探索と同一価格のAPIという分業は、KITのティアAカタログの他項目と一致し、教室デモから自動化パイプラインへ移ってもエスケープ結果を変えずに済みます。より広いテキスト変換にはURLパーセント符号化やXML実体ヘルパと組み合わせ、CIと文書向けの無料で決定的な小さな道具群を組むときは他の符号化エンドポイントと併用してください。
連携の活用例
JSONフィールドの安全な内容
タイトル・メッセージ・ユーザー断片をエスケープし、引用符・バックスラッシュ・改行が手書きやテンプレートのJSON文字列値を壊さないようにします。
フィクスチャとログの整理
ログ・エクスポート・ゴールデンファイルからJSON文字列エスケープをデコードし、読みやすい差分とアプリコード向けのプレーンUnicodeに戻します。
決定的なCIペア
単体テスト・契約確認・JSON.stringify の文字列規則に合わせる必要があるミドルウェア向けに、再現可能なエンコード/デコード対を生成します。
技術的な質問
JSON文字列エスケーパーの料金は?
このページではブラウザで無料です。API経由では成功リクエストが $0.002 で、無効入力は課金されません。
対応しているモードは?
mode=encode(既定)はプレーンテキストをJSON文字列エスケープにします。mode=decode はそれらのエスケープを文字に戻します。
エスケープが不完全または不正な場合は?
デコードは invalid_input で失敗します。単独のバックスラッシュ、非JSONのエスケープ文字、不正な \u 形式、生の引用符、未エスケープの制御は拒否されます。