Python、JavaScript、JavaでJSON文字列をエスケープ解除する方法
Emily Parker
Product Engineer · Leapcell

Key Takeaways
- Python、JavaScript、Javaの組み込みJSONパーサーは、文字列を自動的にエスケープ解除します。
- エスケープ文字を含む非JSON文字列には、特定のデコードメソッドが必要です。
- オンラインツールは、コードなしで迅速なエスケープ解除を支援できます。
JSONデータを扱う際、\"
、\\
、\n
、\t
などのエスケープシーケンスを含む文字列に遭遇することがよくあります。これらのシーケンスは、特別な文字がJSON文字列内で正しく表現されるようにします。ただし、このデータを処理または表示する際には、これらのエスケープされたシーケンスを元の形式に戻す必要があります。これが「エスケープ解除」と呼ばれるプロセスです。
このガイドでは、Python、JavaScript、JavaでJSON文字列をエスケープ解除する方法について説明します。
JSONのエスケープ解除とは?
JSONのエスケープ解除とは、JSON文字列内のエスケープされた文字を元の形式に戻すことです。例:
- エスケープ済み:
"彼女は言った:「こんにちは!」"
- エスケープ解除済み:
彼女は言った:「こんにちは!」
このプロセスは、JSONデータを正確に解釈し表示するために不可欠です。
Python:JSON文字列のエスケープ解除
json.loads()
の使用
Pythonの組み込みjson
モジュールは、JSON文字列を解析する際に自動的にエスケープ解除を処理します。
import json escaped_json = '{"message": "Hello, \"world\"!\nThis is a backslash: \\"}' data = json.loads(escaped_json) print(data["message"])
出力:
Hello, "world"!
This is a backslash: \
この例では、json.loads()
がJSON文字列を解析し、特殊文字を自動的にエスケープ解除します。
encode()
とdecode()
の使用
厳密にはJSONではないが、エスケープシーケンスを含む文字列の場合、エンコードおよびデコードメソッドを使用できます。
escaped_string = 'Line1\nLine2\nLine3' unescaped_string = escaped_string.encode('utf-8').decode('unicode_escape') print(unescaped_string)
出力:
Line1
Line2
Line3
このアプローチは、JSON形式ではないが、エスケープシーケンスを持つ文字列を扱う場合に役立ちます。
JavaScript:JSON文字列のエスケープ解除
JSON.parse()
の使用
JavaScriptでは、JSON.parse()
はJSONデータを解析する際に文字列を自動的にエスケープ解除します。
const escapedJson = '{"message": "Hello, \"world\"!\nThis is a backslash: \\"}'; const data = JSON.parse(escapedJson); console.log(data.message);
出力:
Hello, "world"!
This is a backslash: \
ここで、JSON.parse()
はJSON文字列を解析し、特殊文字をエスケープ解除します。
unescape()
に関する注意
JavaScriptのunescape()
関数は非推奨であり、避けるべきです。代わりに、エスケープ解除の目的にはdecodeURIComponent()
またはJSON.parse()
を使用してください。
Java:JSON文字列のエスケープ解除
JacksonのObjectMapper
の使用
Javaでは、JacksonライブラリのObjectMapper
クラスはJSON文字列を解析し、自動的にエスケープ解除できます。
import com.fasterxml.jackson.databind.ObjectMapper; public class Main { public static void main(String[] args) throws Exception { String escapedJson = "{\"message\": \"Hello, \\\"world\\\"!\\nThis is a backslash: \\\\"}"; ObjectMapper mapper = new ObjectMapper(); MyData data = mapper.readValue(escapedJson, MyData.class); System.out.println(data.getMessage()); } } class MyData { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
出力:
Hello, "world"!
This is a backslash: \
この例では、ObjectMapper
がJSON文字列を解析し、特殊文字をエスケープ解除します。
Apache Commons TextのStringEscapeUtils
の使用
または、Apache Commons TextライブラリのStringEscapeUtils
を使用できます。
import org.apache.commons.text.StringEscapeUtils; public class Main { public static void main(String[] args) { String escapedString = "Hello, \"world\"!\nThis is a backslash: \\"; String unescapedString = StringEscapeUtils.unescapeJson(escapedString); System.out.println(unescapedString); } }
出力:
Hello, "world"!
This is a backslash: \
このメソッドは、完全なJSON解析のコンテキスト外でJSON文字列をエスケープ解除するのに役立ちます。
JSONをエスケープ解除するためのオンラインツール
コードを書きたくない場合は、JSON文字列をエスケープ解除できるオンラインツールがいくつかあります。
- FreeFormatter: https://www.freeformatter.com/json-escape.html
- LambdaTest: https://www.lambdatest.com/free-online-tools/json-unescape
これらのツールを使用すると、エスケープされたJSON文字列を貼り付けて、エスケープ解除されたバージョンをすぐに取得できます。
結論
JSON文字列のエスケープ解除は、さまざまなソースからのデータを処理する際の一般的なタスクです。ほとんどの最新のプログラミング言語は、このプロセスを効率的に処理するための組み込みメソッドまたはライブラリを提供しています。これらのツールを理解して利用することで、アプリケーションがJSONデータを正しく解釈し表示できるようになります。
FAQs
エスケープシーケンス(例:\n
、\"
)を元の文字に戻すことを意味します。
はい、Pythonのdecode('unicode_escape')
やJavaのApache Commonsなどのデコード関数を使用することで可能です。
はい、FreeFormatterやLambdaTestなどのWebサイトがこの機能を提供しています。
Leapcellは、バックエンドプロジェクトをホストするための最良の選択肢です。
Leapcellは、Webホスティング、非同期タスク、およびRedis用の次世代サーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、または Rustで開発できます。
無制限のプロジェクトを無料でデプロイ
- 使用量に応じてのみ支払い - リクエストも料金もかかりません。
比類のない費用対効果
- アイドル料金なしの従量課金制。
- 例:$25で平均応答時間60msで694万リクエストをサポートします。
合理化された開発者エクスペリエンス
- 簡単なセットアップのための直感的なUI。
- 完全に自動化されたCI/CDパイプラインとGitOps統合。
- 実用的な洞察のためのリアルタイムのメトリクスとロギング。
簡単なスケーラビリティと高いパフォーマンス
- 高い同時実行性を容易に処理するための自動スケーリング。
- 運用上のオーバーヘッドはゼロ - 構築に集中するだけです。
詳細については、ドキュメントをご覧ください。
Xでフォローしてください:@LeapcellHQ