JSONの使用法



JSON テキストを JavaScript オブジェクトに変換する

JSON の最も一般的な使用法の 1 つは、Web サーバーから JSON データを (ファイルまたは HttpRequest として) 読み取り、JSON データを JavaScript オブジェクトに変換してから使用することです。 Web ページ内のデータです。

もっと簡単に説明すると、デモンストレーションの入力として (ファイルの代わりに) 文字列を使用します。


JSON インスタンス - 文字列からのオブジェクト

JSON 構文を含む JavaScript 文字列を作成します:

var txt = '{ "employees" : [' +
'{ "firstName":"John" , "lastName ":"ドエ" },' +
'{ "firstName":"Anna" , "lastName":"Smith" },' +
'{ "firstName":"Peter" , "lastName":"Jones" } ]}' ;

JSON 構文は JavaScript 構文のサブセットであるため、JavaScript 関数 eval() を使用して JSON テキストを JavaScript オブジェクトに変換できます。

eval() 関数は、JavaScript コンパイラーを使用して JSON テキストを解析し、JavaScript オブジェクトを生成します。構文エラーを避けるために、テキストは括弧で囲む必要があります:

var obj = eval ("(" + txt + ")");

Web ページでの JavaScript オブジェクトの使用:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<h2>从 JSON 字符串中创建对象</h2>
<p>
名: <span id="fname"></span><br> 
姓: <span id="lname"></span><br> 
</p> 
<script>
var txt = '{"employees":[' +
'{"firstName":"John","lastName":"Doe" },' +
'{"firstName":"Anna","lastName":"Smith" },' +
'{"firstName":"Peter","lastName":"Jones" }]}';

var obj = eval ("(" + txt + ")");

document.getElementById("fname").innerHTML=obj.employees[1].firstName 
document.getElementById("lname").innerHTML=obj.employees[1].lastName 
</script>
</body>
</html>

サンプルの実行»

[サンプルの実行] ボタンをクリックしてオンラインサンプルを表示します


JSON パーサー

lamp eval() 関数は、任意の JavaScript コードをコンパイルして実行できます。これにより、潜在的なセキュリティ問題が隠蔽されます。

JSON パーサーを使用して JSON を JavaScript オブジェクトに変換する方が安全です。 JSON パーサーは JSON テキストのみを理解し、スクリプトをコンパイルしません。

ブラウザでは、ネイティブ JSON サポートと高速な JSON パーサーが提供されます。

新しいブラウザーと最新の ECMAScript (JavaScript) 標準には、JSON のネイティブ サポートが含まれています。

インスタンス

<!DOCTYPE html>
<html>
<body>
<h2>Create Object from JSON String</h2>
<p>
First Name: <span id="fname"></span><br> 
Last Name: <span id="lname"></span><br> 
</p> 
<script>
var txt = '{"employees":[' +
'{"firstName":"John","lastName":"Doe" },' +
'{"firstName":"Anna","lastName":"Smith" },' +
'{"firstName":"Peter","lastName":"Jones" }]}';

obj = JSON.parse(txt);

document.getElementById("fname").innerHTML=obj.employees[1].firstName 
document.getElementById("lname").innerHTML=obj.employees[1].lastName 
</script>
</body>
</html>

インスタンスの実行»

「インスタンスの実行」ボタンをクリックしてオンラインインスタンスを表示します

古いブラウザの場合は、JavaScriptライブラリを使用してください: https://github.com/douglascrockford/JSON- js

JSON 形式は元々 Douglas Crockford によって指定されました

WebブラウザのサポートWebソフトウェアのサポート
  • Firefox (Mozilla) 3.5

  • Internet Explorer 8

  • Chrome

  • オペラ10

  • サファリ4

  • jQuery

  • Yahoo UI

  • プロトタイプ

  • Dojo

  • ECMAScript 1.5