JSON文字列によるjavascriptオブジェクトの作成
3725 ワード
JSON:JavaScriptオブジェクト表現(JavaScript Object Notation).
JSONはテキスト情報を格納・交換する構文である.XMLに似ています.
JSONはXMLより小さく、より速く、解析しやすい.
JSONデータはAJAXで転送可能---バックグラウンドにJSON文字列を組み立てる
JSONはJavaScriptで解析できる---クライアントjavascriptは解析してオブジェクトに変換し、そのデータを使用できるようになる
JSONテキストをJavaScriptオブジェクトに変換
JSONの最も一般的な使い方の1つは、WebサーバからJSONデータ(ファイルとしてまたはHttpRequestとして)を読み込み、JSONデータをJavaScriptオブジェクトに変換してWebページで使用することです.
JSON構文規則
JSON構文はJavaScriptオブジェクトがフランス語法を表すサブセットである.データ名/値ペア データカンマ区切り かっこ保存オブジェクト 角括弧保存配列
JSON名称/値ペア
JSONデータの書式は、名前/値ペアです.
名前/値のペアには、フィールド名(二重引用符)が含まれます.
このJavaScript文と同等であることは容易に理解できます.
JSON値
JSON値は次のようになります.数字(整数または浮動小数点数) 文字列(二重引用符) 論理値(trueまたはfalse) 配列(四角カッコ) オブジェクト(カッコ内) null
JSONオブジェクト
JSONオブジェクトは括弧で書きます.
オブジェクトには、複数の名前/値のペアを含めることができます.
JSON配列
JSON配列は括弧の中に書く:
配列には、複数のオブジェクトを含めることができます.
オブジェクト配列の最初のアイテムにアクセスします.
返される内容は次のとおりです.
このようにデータを変更できます.
JSONファイル JSONファイルのファイルタイプは「.json」 JSONテキストのMIMEタイプは「アプリケーション/json」 JSON構文はJavaScript構文のサブセットであるため、JavaScript関数eval()はJSONテキストをJavaScriptオブジェクトに変換するために使用できます.
eval()関数はJavaScriptコンパイラを使用し、JSONテキストを解析してJavaScriptオブジェクトを生成します.構文エラーを回避するには、テキストを括弧で囲まなければなりません.
JSON解析器
ヒント:eval()関数は、JavaScriptコードをコンパイルして実行できます.これは潜在的なセキュリティ問題を隠しています.
JSON解析器を使用してJSONをJavaScriptオブジェクトに変換する方が安全です.JSON解析器は、スクリプトをコンパイルせずにJSONテキストのみを認識します.
ブラウザでは、オリジナルのJSONサポートが提供され、JSON解析器の速度が速くなります.
新しいブラウザと最新のECMAScript(JavaScript)規格には、JSONに対するオリジナルのサポートが含まれています.
例:
JSONはテキスト情報を格納・交換する構文である.XMLに似ています.
JSONはXMLより小さく、より速く、解析しやすい.
JSONデータはAJAXで転送可能---バックグラウンドにJSON文字列を組み立てる
JSONはJavaScriptで解析できる---クライアントjavascriptは解析してオブジェクトに変換し、そのデータを使用できるようになる
JSONテキストをJavaScriptオブジェクトに変換
JSONの最も一般的な使い方の1つは、WebサーバからJSONデータ(ファイルとしてまたはHttpRequestとして)を読み込み、JSONデータをJavaScriptオブジェクトに変換してWebページで使用することです.
JSON構文規則
JSON構文はJavaScriptオブジェクトがフランス語法を表すサブセットである.
JSON名称/値ペア
JSONデータの書式は、名前/値ペアです.
名前/値のペアには、フィールド名(二重引用符)が含まれます.
"firstName" : "John"
このJavaScript文と同等であることは容易に理解できます.
firstName = "John"
JSON値
JSON値は次のようになります.
JSONオブジェクト
JSONオブジェクトは括弧で書きます.
オブジェクトには、複数の名前/値のペアを含めることができます.
{ "firstName":"John" , "lastName":"Doe"
JSON配列
JSON配列は括弧の中に書く:
配列には、複数のオブジェクトを含めることができます.
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
オブジェクト配列の最初のアイテムにアクセスします.
employees[0].lastName;
返される内容は次のとおりです.
Gates
このようにデータを変更できます.
employees[0].lastName = "Jobs";
JSONファイル
eval()関数はJavaScriptコンパイラを使用し、JSONテキストを解析してJavaScriptオブジェクトを生成します.構文エラーを回避するには、テキストを括弧で囲まなければなりません.
var obj = eval ("(" + txt + ")");
JSON解析器
ヒント:eval()関数は、JavaScriptコードをコンパイルして実行できます.これは潜在的なセキュリティ問題を隠しています.
JSON解析器を使用してJSONをJavaScriptオブジェクトに変換する方が安全です.JSON解析器は、スクリプトをコンパイルせずにJSONテキストのみを認識します.
ブラウザでは、オリジナルのJSONサポートが提供され、JSON解析器の速度が速くなります.
新しいブラウザと最新のECMAScript(JavaScript)規格には、JSONに対するオリジナルのサポートが含まれています.
例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript">
var txt = '{"employees":['
+ '{"firstName":"Bill","lastName":"Gates" },'
+ '{"firstName":"Georg1e","lastName":"Bush" },'
+ '{"firstName":"Thomas","lastName":"Carter" }]}';
//var obj = eval("(" + txt + ")");
var obj = JSON.parse(txt);
window.onload = function fn() {
document.getElementById("fname").innerHTML = obj.employees[1].firstName;
document.getElementById("lname").innerHTML = obj.employees[1].lastName;
}
</script>
</head>
<body>
<h2>
JSON
</h3>
<p>
First Name: <span id="fname"></span><br />
Last Name: <span id="lname"></span><br />
</p>
</body>
</html>