JSONデータを読みやすく、デバッグしやすくするためにフォーマットして検証します。圧縮、整形、構文強調表示をサポートします。
エスケープ出力が有効な場合、JSON文字列はプログラムコードに直接埋め込むためにエスケープされます。例えば:
通常の出力::
{
"message": "Hello \"World\"",
"newline": "Line 1\nLine 2"
}
エスケープ出力::
{\n \"message\": \"Hello \\\"World\\\"\",\n \"newline\": \"Line 1\\nLine 2\"\n}
JSON(JavaScript Object Notation)は、人間が読み書きしやすく、機械が解析・生成しやすい軽量データ交換フォーマットです。JSONはJavaScript言語のサブセットに基づいていますが、プログラミング言語から完全に独立したテキスト形式で、ほとんどのプログラミング言語で解析と生成がサポートされています。JSONは2000年代初頭にDouglas Crockfordによって提案され、ECMA-404およびRFC 8259で標準化されました。
型 | 説明 | 例 |
---|---|---|
文字列 | 二重引用符で囲まれたUnicode文字のシーケンス | "Hello World" |
数値 | 整数または浮動小数点数、非数値はサポートされません | 42 , 3.14 |
オブジェクト | 順序付けされていないキー/値ペアのコレクション | {"name": "John"} |
配列 | 順序付けされた値のコレクション | [1, 2, 3] |
真偽値 | trueまたはfalse | true |
null | 空の値 | null |
JSONフォーマット処理は主に解析と再生成の2つのステップを含みます。まず、パーサーがJSON文字列を読み取ってメモリ表現を構築し、次にフォーマッタが特定のインデントと改行で文字列を再生成します。以下は簡略化されたフォーマット処理です:
// Simplified JSON formatting implementation
function formatJSON(jsonStr, indentSize = 2) {
try {
// Step 1: Parse JSON string to JavaScript object
const obj = JSON.parse(jsonStr);
// Step 2: Convert object back to string with indentation
return JSON.stringify(obj, null, indentSize);
} catch (e) {
// Handle invalid JSON
throw new Error("Invalid JSON: " + e.message);
}
}
// Usage example
const uglyJson = '{"name":"John","age":30,"city":"New York"}';
const prettyJson = formatJSON(uglyJson);
console.log(prettyJson);
/*
Output:
{
"name": "John",
"age": 30,
"city": "New York"
}
*/
特徴 | JSON | XML |
---|---|---|
構文 | 簡潔、中括弧と角括弧を使用 | より複雑、タグと属性を使用 |
ファイルサイズ | 通常XMLより小さい | 通常JSONより大きい |
解析速度 | より速い | より遅い |
データ型 | 基本的なデータ型をサポート | すべてのデータはテキスト |
名前空間 | サポートなし | サポートあり |
コメント | サポートなし | サポートあり |
使いやすさ | 開発者にとってより親しみやすい | より構造化され厳格 |
問題:JSON解析エラー - カンマまたは括弧の欠落
解決策:オブジェクトと配列の閉じ括弧をすべてチェックし、各キー/値ペアの後にカンマがあることを確認してください(最後のものを除く)。
問題:JSON解析エラー - 無効なキー値
解決策:すべてのキーが二重引用符で囲まれていることを確認してください。単一引用符や引用符なしのキー名はサポートされていません。
問題:JSONデータサイズの問題
解決策:大きなJSONデータの場合、転送用に圧縮バージョンを使用し、クライアント側で表示用にフォーマットすることを検討してください。
JSONに関する詳細な公式情報については、次のリソースを参照してください:JSON.org | RFC 8259 | Wikipedia: JSON