JavaScript、Python、JavaでStringをJSONに変換する方法
Daniel Hayes
Full-Stack Engineer · Leapcell

Key Takeaways
- JavaScriptの
JSON.parse()
やPythonのjson.loads()
のようなビルトインメソッドを使って安全に変換します。 - ランタイムエラーを避けるために、変換する前に必ず文字列の形式を検証します。
- Javaでは、JSON解析のためにGsonや
org.json
のような外部ライブラリが必要です。
文字列をJSONオブジェクトに変換することは、特にシステム間のデータ交換を扱う場合に、ソフトウェア開発において一般的なタスクです。この記事では、JavaScript、Python、Javaでこの変換を行う方法について包括的なガイドを提供します。
JavaScript
JavaScriptでは、JSON.parse()
メソッドがJSON形式の文字列をJavaScriptオブジェクトに変換する標準的な方法です。
例:
const jsonString = '{"name":"John", "age":30, "city":"New York"}'; const obj = JSON.parse(jsonString); console.log(obj.name); // Output: John
注意: 文字列が有効なJSON形式であることを確認してください。そうでない場合、JSON.parse()
はSyntaxError
をスローします。
Reviver関数を使用する
JSON.parse()
メソッドは、結果のオブジェクトを変換するためにreviver関数を受け入れることができます。
const jsonString = '{"name":"John", "birth":"1986-12-14", "city":"New York"}'; const obj = JSON.parse(jsonString, function (key, value) { if (key === "birth") { return new Date(value); } return value; }); console.log(obj.birth); // Output: Date object
注意: eval()
またはFunction
コンストラクタを使ってJSON文字列を解析することは、任意のコードを実行し、セキュリティリスクをもたらす可能性があるため避けてください。
Python
Pythonは、JSON形式の文字列をPythonの辞書に変換するためのいくつかのメソッドを提供します。
json.loads()
を使用する
json
モジュールのloads()
関数が、最も簡単でおすすめの方法です。
import json json_string = '{"name": "John", "age": 30, "city": "New York"}' data = json.loads(json_string) print(data["name"]) # Output: John
注意: 文字列が有効なJSON形式でない場合、json.loads()
はjson.JSONDecodeError
を発生させます。
ast.literal_eval()
を使用する
ast
モジュールのliteral_eval()
関数は、Pythonリテラルを含む文字列を安全に評価できます。
import ast json_string = '{"name": "John", "age": 30, "city": "New York"}' data = ast.literal_eval(json_string) print(data["name"]) # Output: John
注意: ast.literal_eval()
はeval()
よりも安全ですが、それでも慎重に使用し、信頼できる入力でのみ使用する必要があります。
Java
Javaでは、JSON形式の文字列をJSONオブジェクトに変換するには、org.json
、Gson、またはJacksonのようなライブラリを使用します。
org.json
を使用する
import org.json.JSONObject; public class Main { public static void main(String[] args) { String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; JSONObject obj = new JSONObject(jsonString); System.out.println(obj.getString("name")); // Output: John } }
Gsonを使用する
import com.google.gson.Gson; import com.google.gson.JsonObject; public class Main { public static void main(String[] args) { String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; Gson gson = new Gson(); JsonObject obj = gson.fromJson(jsonString, JsonObject.class); System.out.println(obj.get("name").getAsString()); // Output: John } }
注意: Gsonは、JavaオブジェクトをJSONに、またはその逆に変換するためにGoogleによって開発された人気のあるライブラリです。
結論
文字列をJSONオブジェクトに変換することは、現代のアプリケーションにおけるデータ処理と通信に不可欠です。各プログラミング言語は、この変換を容易にするため独自のツールとライブラリを提供しています。入力文字列が有効なJSON形式であることを常に確認し、堅牢で安全なコードを維持するために例外を適切に処理してください。
FAQs
解析が失敗し、SyntaxError
(JavaScript)やJSONDecodeError
(Python)のようなエラーがスローされます。
いいえ、eval()
はセキュリティリスクをもたらすため、避けるべきです。
Gsonは広く使用されており、文字列をJSONに変換するためのシンプルな構文を提供します。
Leapcellは、バックエンドプロジェクトをホストするための最適な選択肢です。
Leapcellは、Webホスティング、非同期タスク、Redisのための次世代サーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、またはRustで開発できます。
無制限のプロジェクトを無料でデプロイ
- 使用量に対してのみ支払い - リクエストも課金もありません。
比類のないコスト効率
- アイドル時の課金なしで従量課金。
- 例:25ドルで平均応答時間60msで694万リクエストをサポートします。
合理化された開発者エクスペリエンス
- 簡単なセットアップのための直感的なUI。
- 完全に自動化されたCI/CDパイプラインとGitOpsの統合。
- 実用的な洞察を得るためのリアルタイムメトリクスとロギング。
簡単なスケーラビリティと高いパフォーマンス
- 高い同時実行性を容易に処理するための自動スケーリング。
- 運用上のオーバーヘッドはゼロ - 構築に集中できます。
詳細については、ドキュメントをご覧ください!
Xでフォローしてください:@LeapcellHQ