2009-11-08 4 views
5

ほとんどの簡単な言葉で説明できますか?jsonとは何ですか、初心者に説明できますか?

デモスクリプトに最適です。

+11

http://json.org/上descriptonと何が問題なのですか? – tangens

+0

そこに提示されたものを試してみてください...説明と一緒に4つのURLを持ち、初心者の方はまず自分で練習してください。 –

+1

JavaScript Object Notation – dlamblin

答えて

18

JSONは、(通常はブラウザとサーバーの間で)データを共有する方法です。これは、WebサイトのHTMLレイアウトが変更された場合、プログラムを変更する必要があります。いくつかの時点で

//arrays: 
[value, value, value] 
//objects: 
{key:value, key:value, key:value} 

、ダグはすでにセットアップオブジェクトのようにJavaScriptにデータを送信するために、通常は、最も効率的であることに気づいたとして知られている教祖:

JavaScriptが値を格納するコレクションには2つの方法が可能になります。 [PHPではカンマ区切りの文字列、ポストデータ、XML、さらにはHTMLを送信するのではなく、JavaScriptで辛抱強く解析する必要があります。

彼はその考えをJSONと呼び、その仕様を書いて、標準が生まれました。

//XML 
"<xml..><details>\ 
    <user>Jim</user><posts>239</posts><since>Jan09</since>\ 
</details>" 
//POSTData 
"user=Jim&posts=239&since=Jan09" 
//JSON 
"{user:'Jim', posts:239, since:'Jan09'}" 

最後のものは簡単に(evalを使用)JSによって解析することができ、たとえば、のは、あなたのlogin.phpスクリプトは、ユーザー名、合計投稿、登録からの日数を返す必要がありましょう

詳細は直感的に使用することができます。

var user = details.user; 

はEDIT:

それは正しく、有効なJSONであることを、すべての文字列を二重引用符で囲む必要があることを指摘しました。 これは、JSが予約語で狂ってしまうのを防ぐために行われました.WSでは、classなどの特定の単語は引用符で囲まれていない限り使用できないため、{class:'mike'}は使用できません。

また、PHP 5.2+はJSONを作成したり、解析するために使用できる機能を持っていることを指摘すべきである:JSONが有効であるので、それは時として重要である場合

​​3210

json_decode機能のみ動作しますそれらの二重引用符を正しく取得する。

+1

あなたの例は有効なJSONではありません。stringkeysには引用符を付ける必要があります。 – truppo

+0

私は気付いていますが、余分な引用が問題を混乱させると感じました。 Crockford氏は、Javascript 1.3以降を使用している場合、標準から引用要件を削除する可能性があると述べているため、完全に不公正なショートカットではありません。 – SamGoody

+0

さらに、ストリングキーとキーをダブルクォートして有効にする必要があります。これは、文字列全体をシングルクォートする必要があります。これは奇妙に見えます。 – SamGoody

1

JSONは、データ構造を作成するJavascriptのソースコードです。

12

基本的にオブジェクトをテキストで記述する方法です。テキストベースのシリアライズ形式です。しかし、その美しさは、通常のJavaScriptでもあるということです。 JavaScriptの構文は、オブジェクトを非常に簡潔なフォーマットで初期化することができ、そのフォーマットは他の言語でも生成/解析が非常に簡単です。

したがって、余分なライブラリを持たないJavaScript(つまり、コードとしてテキストを解釈することができます)と、通常はライブラリを使用して他のプラットフォームで作成することができます。 (通常、Webサーバは解釈するブラウザのJSONを生成します。)これは、あなたが、もちろん、完全にあなたのデータソースを信頼を前提としてい


- 任意のテキストを実行するコードは、セキュリティの観点から、かなり危険であるとして。

+0

+1主にデータ形式であることを言及しています。 – Gumbo

3

JSONは、通常はWebサーバーからブラウザに送信されるデータ構造を宣言するJavascriptソースコードです。ブラウザは通常のjavascriptパーサーを使用してコードを実行し、データ構造がポップアップします。

A Javascriptの宣言は次のようになり

var myvar = {"column1": "valuie1"}; 
      ^^^^^^^^^^^^^^^^^^^^^^ 

部分は^^^で下線をJSONとして知られるようになったものです。

だから、早い段階で

、いくつかのJavascriptがサーバーからテキストを取得し、好きそれを解析します:

var myvar = eval('(' + textfromserver + ')'); 

evalが危険であるので同じように、それは今日ではより頻繁に使われています:それは

var myObject = JSON.parse(myJSONtext); 

多くの人が有用だと分かったので、彼らはそれを標準にしました。より完全な説明については、this wikepedia pageを参照してください。

0

私はそれを簡単にしようとします。 XMLに慣れていれば、人間とプログラムの両方に読みやすい形式でデータを格納するという点で、基本的にXMLと似ています。あるプログラムと別のプログラム間でデータを移動するために仲介者として使用されていることがわかるため、「データ交換フォーマット」というラベルが付けられています。

たとえば、他の人が自分のプログラムから情報を取得して使用することを望むデータベースがあるとします。それらにデータベースへの完全なアクセス権を与えるのではなく、何らかのJSONレイヤーを書くことによってアクセスを制限することができます。 RSSフィードを使用した場合と同じように、JSONにアクセスできます。実際の例:ヤフー検索を実行しデスクトップウィジェットに直接送信されるデスクトップウィジェット(またはその他のもの)を人々が書くことができるように、Yahooは検索エンジン用のJSONレイヤーを提供しています。

JSONのようなものを使う代わりに、あなたのプログラムがWebページのHTMLコンテンツを取得し、何らかの形で必要な情報を見つけられるようにすることができます。

+0

また、jsonで関数を定義することもできます – Chris

+0

@Chris:いいえ、できません。 – Ryan

+0

@minitech:確かにそうです:var o = {f:function(){alert( 'はい、できます!')}};の(); – Chris

0

あなたは物事が事実上、サーブレット、JSPのようなJavaScriptとサーバーサイドの技術の間で通信するのに役立ちますシンプルなデータ交換フォーマットはJSON Click here to see the JSON video

JSON(JavaScriptオブジェクト表記)を示して、このビデオを見てください見たい場合は、 WCF、ASP.Netなど

JSONの形式は次のとおりです。以下のフォーマットは、 "CustomerCode"と "CustomerName"プロパティを持つ "Customer"オブジェクトを表します。

![{"CustomerCode":"1001","CustomerName":"Shiv"}][2] 

enter image description here

今、このフォーマットは容易ジャバスクリプトによって消費およびJavaScriptオブジェクトに変換することができます。上記の図を見て、JSONをjavascript変数に渡したところで、javascriptオブジェクトが "CustomerCode"と "CustomerName"プロパティでどのように評価されているかを確認できます。

enter image description here

は、Webアーキテクチャを見れば、それは二つの部分、ブラウザとサーバーがあります。ブラウザ側ではJavascriptが最も顕著でよく確立された言語ですが、サーバー側ではJSP、ASP.NET、PHPなどの異なるテクノロジを持っています。

サーバー側のテクノロジが簡単に変換できるJSON形式実際には複数のサーバーサイドの技術とJavaScript言語の間の通信を容易にするjavascriptオブジェクトに組み込まれています。

0

JSON(JavaScript Object Notation)は、データがを交換するために使用される軽量フォーマットです。また、JavaScriptのObject Notationのサブセット(objectsはJavaScriptで構築されています)です。

JSONは、JavaScriptコードになるような方法でシリアル化する方法です。これを実行すると(evalなど)、このコードはシリアル化したデータを含むJavaScriptオブジェクトを作成して返します。 JavaScriptは次の構文を使用できるため、これは使用できます。

var MyArray = [ 1, 2, 3, 4]; // MyArray is now an array with 4 elements 
var MyObject = { 
    'StringProperty' : 'Value', 
    'IntProperty' : 12, 
    'ArrayProperty' : [ 1, 2, 3], 
    'ObjectProperty' : { 'SubObjectProperty': 'SomeValue' } 
}; // MyObject is now an object with property values set. 

これはいくつかの目的で使用できます。 1つは、サーバーのバックエンドからJavaScriptコードにデータを渡す快適な方法です。したがって、これはAJAXでよく使用されます。

また、スタンドアロンのシリアル化メカニズムとして使用することもできます。このメカニズムは、XMLよりも簡単で、スペースが少なくて済みます。さまざまなプログラミング言語のJSONでオブジェクトを直列化および逆シリアル化できるライブラリが多数あります。

ここには非常に簡潔で簡潔な記事があります。 (MSONへのthnx、Vilx) http://secretgeek.net/json_3mins.asp

関連する問題