入力

出力

文字列をJSONに変換とは?

JSONが文字列として届くことがあります:エスケープ済み、二重エンコード、または引用符で囲まれています。"{\"a\": 1}"のような文字列は、値がJSONであるJSON文字列です。解析するには、外側の文字列を解析してから内側のJSONを解析する必要があります。このツールはそれを実行します。入力がJSONとして解析されるべきプレーン文字列の場合も処理します。

このツールはブラウザでJSON.parse()を使用します。入力がJSONを含む文字列の場合、再度解析します。サーバーには送信されません。

使い方

1

文字列を貼り付け

解析したい文字列を貼り付けます。プレーンJSON文字列、エスケープされたJSON文字列(ログやAPIから)、または二重エンコードされた値の場合があります。サンプルまたはアップロードを使用してください。

2

解析結果を表示

右パネルに解析されたJSONが表示されます。入力がJSONを含む文字列だった場合、ツールは再度解析します。無効な入力はエラーを表示します。出力は読みやすくフォーマットされます。

3

コピー、ダウンロード、または圧縮

結果を取得するには<strong>コピー</strong>、<strong>ダウンロード</strong>、<strong>圧縮</strong>を使用してください。文字列のエスケープ/アンエスケープにはJSONエスケープを、検証にはJSONバリデーターを使用してください。

文字列をJSONに変換の例

エスケープまたは文字列化されたJSONを解析。通信テーマの例:

入力(JSON文字列)

入力

解析結果

出力

いつ必要か

データベースのテキスト列にJSONとして保存されていると、エスケープされた文字列として返ってくることがよくあります。JSONを別のJSON文字列でラップするAPIレスポンスは二重解析が必要です。JSONを文字列としてダンプするログも同様です。JSON仕様では文字列にエスケープされたJSONを含めることができます。その文字列を解析すると内部構造が得られます。このツールは追加の解析ステップを自動化します。

PostmanでAPIをテストしたり、DevToolsでレスポンスをデバッグしたりする際、文字列化されたJSON値を受け取ることがあります。JSON.parse()のドキュメントで解析ルールを確認できます。正式な標準はRFC 8259です。MDNのJSONガイドで一般的な落とし穴を確認できます。

文字列内の文字(引用符、バックスラッシュなど)をエスケープ/アンエスケープするにはJSONエスケープを、既に解析されたJSONのフォーマットにはJSONフォーマッターを使用してください。

よくある質問

入力が既に有効なJSONの場合は?

ツールは解析して結果を表示します。JSONを含む文字列の場合は再度解析します。したがって{"a": 1}は動作し、"{\"a\": 1}"{"a": 1}を得るために2回解析されます。

何段階まで解析しますか?

結果が文字列である限り解析を続けます。したがって"\"{\\\"a\\\": 1}\""(三重エンコード)はオブジェクトが得られるまで解析されます。実際には通常2〜3段階が限界です。

データは送信されますか?

いいえ。解析はブラウザで実行されます。

文字列内の無効なJSONは?

解析エラーになります。構文(末尾のカンマ、引用符のないキーなど)を修正して再試行してください。JSONバリデーターで問題を特定できます。

二重エンコードされたJSONはいつ発生しますか?

JSONがデータベースの列に文字列として保存されている場合、またはAPIが値の1つが文字列化されたJSONであるJSONオブジェクトを返す場合です。外側のJSONを解析すると文字列が得られ、その文字列を解析すると内側のJSONが得られます。

関連ツール

JavaScriptでのJSON解析についてはMDN JSON.parseMDN JSONガイドを参照してください。RFC 8259でJSON構文が定義されています。json.orgのJSON仕様で文法を確認できます。jqPostmanも参照してください。文字列のエスケープにはJSONエスケープを使用してください。