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データの書式は、名前/値ペアです.
    名前/値のペアには、フィールド名(二重引用符)が含まれます.
    "firstName" : "John"

    このJavaScript文と同等であることは容易に理解できます.
    firstName = "John"

     
    JSON値
    JSON値は次のようになります.
  • 数字(整数または浮動小数点数)
  • 文字列(二重引用符)
  • 論理値(trueまたはfalse)
  • 配列(四角カッコ)
  • オブジェクト(カッコ内)
  • null

  •  
    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ファイル
  • JSONファイルのファイルタイプは「.json」
  • JSONテキストのMIMEタイプは「アプリケーション/json」
  • JSON構文はJavaScript構文のサブセットであるため、JavaScript関数eval()はJSONテキストをJavaScriptオブジェクトに変換するために使用できます.
    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>