100% ローカル — データがブラウザの外に出ることはありません

JSON文字列をテキストに変換|中に入っている値を読み取れます

JSONの文字列リテラルをテキストに戻します。前後の引用符はあってもなくても構いません。読めない場合は、どこが何のせいで駄目なのかを、その位置を添えて知らせます。

高速 プライベート Cookieゼロ

JSON String 入力

Text 出力

このツールの動作

JSON の文字列リテラルは、それが表すテキストになります。"caf\u00e9" は café、"二\n行" は二行、"\ud83d\ude00" は絵文字です。サロゲート対は一文字であって、壊れた二つの片割れではありません。

引用符は省略できる

次のどちらも通ります。

"caf\u00e9"
caf\u00e9

これは意図した設計です。JSON の文字列が引用符付きのまま手元に来ることはまれで、ログの一行、git diff、スタックトレース、中身だけを引用したエラーメッセージから写すのが実際です。引用符を必須にすれば、毎回手で付け直すことになります。

その代償は小さく、はっきり述べておきます。裸の入力がたまたま別種の妥当な JSON——[1,2] や null——であった場合、それはテキストとして読まれます。ここで裸の断片が意味するのはそれだからです。リテラルとして解析されるのは引用符付きの入力だけです。

拒否は何がどこでかを述べる

JSON の文字列でない入力は、中途半端に復号せず拒否します。メッセージは原因を名指しします。

入力メッセージ
a"bUnescaped quotation mark at position 1: write it as \"
"ab\q"Unknown escape "\q" at position 3
"a\u12"Invalid \u escape at position 2: four hexadecimal digits expected
"abcThe opening quotation mark has no closing quotation mark
{"a":1}Expected a JSON string, found a JSON object

位置は 0 から数え、あなたが貼り付けた文字列を指します。数字がそのまま該当の文字に導きます。

これをわざわざ書くのは、以前はそうでなかったからです。上のどの場合も Invalid JSON string escape sequence という一つの文言しか出しませんでした。貼り付けたオブジェクトはエスケープの誤りではありませんし、そう言われれば見当違いの場所を探すことになります。これはこのツールの実際の欠陥で、このページを書く過程で見つけ、直しました。

推測はしない

未知のエスケープは文字ではなく誤りです。\q は妥当な JSON ではありません。「たぶん q のつもりだろう」と決めれば、元の内容とわずかに違うテキストを返すことになります。三つ先のシステムで表面化する種類の差です。

プライバシー

すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。

よくある質問

前後の引用符は必要ですか。
不要です。引用符付きのリテラルも、`caf\u00e9` のような裸の断片も受け付けます。手元にあるのは文字列の中身だけということが多いからです。ログの一行、差分、スタックトレースから写した場合などです。引用符があればそれを使い、なければ補います。
なぜ JSON オブジェクトが拒否されたのですか。
このツールが復号するのは一つの文字列で、文書ではないからです。`{"a":1}` を貼ると、エスケープについての紛らわしい苦情ではなく `Expected a JSON string, found a JSON object` が返ります。文書全体を読むには JSON の整形または検証をお使いください。
「Unescaped quotation mark at position 4」と出ました。どういう意味ですか。
貼り付けた内容の 4 番目の文字が `"` で、文字列をそこで早く閉じてしまっている、という意味です。JSON の文字列の中では引用符は `\"` と書きます。位置は 0 から数え、あなたが入力した文字列を指すので、探さずにその文字へ直行できます。

関連ツール