5

オブジェクトリテラル、JSON、JavaScriptオブジェクトが正確に何を意味するのかについて私は混乱していますが、私にはそれらは似ているように見えます。

{foo: 'bar', bar : 'baz'}

上記のAFAIKは、オブジェクトリテラル、json、およびjavascriptオブジェクトです。

オブジェクトリテラルとjsonは同じ意味ですか?

どうやって区別しますか?

4

6 に答える 6

11

変数jsonStringにはJSON文字列が含まれています。

var jsonString = '{"foo": "bar", "bar" : "baz"}'

変数javascriptObjectには、オブジェクトリテラルを使用して初期化されたjavascriptオブジェクトが含まれています。

var javascriptObject =  {foo: 'bar', bar : 'baz'}

を使用してjson文字列をjavascriptオブジェクトに変換しJSON.parse、を使用して再び元に戻すことができますJSON.stringify

于 2012-06-08T15:07:36.267 に答える
7

JSONは、XMLのような単なるデータ形式です。真のJSONには、次のように、キーを二重引用符で囲む必要があります。

{"foo":"bar"}

JavaScriptオブジェクトはJavaScript言語の一部であり、プロトタイプなどが関連付けられています。

オブジェクトリテラルnewは、キーワードまたはを使用するのではなく、角かっこを使用してjavascriptオブジェクトを作成しますObject.create()

//object literal
var foo = {};

//equivalent
var foo = new Object();
于 2012-06-08T15:11:15.320 に答える
4

上記のAFAIKは、オブジェクトリテラル、json、およびjavascriptオブジェクトです。

オブジェクトリテラルです。オブジェクトを作成します。

構文(オブジェクトリテラル表記のサブセット)に準拠していないため、JSONではありません。キーは引用符で囲まれておらず、値の前後に間違った種類の引用符('の代わりに")が使用されています。

どちらが何であるかをどのように区別しますか?

コンテクスト。

JSONは通常、JavaScriptプログラムの途中に表示(埋め込み)されません。これはデータ形式であり、通常はファイル全体(またはHTTP応答)として表示されます。

何かがオブジェクトを期待する場合、オブジェクトリテラルまたは変数(または関数呼び出しなどからの戻り値)からオブジェクトを取得できます。

于 2012-06-08T15:07:32.913 に答える
4

JSONはJavaScriptのオブジェクトリテラル表記に由来し、それ自体が文字列です。それを見るだけで、類似性を説明します。現在、JSONは、ネットワーク経由で送信したり保存したりする前に、あらゆる種類のデータをシリアル化する一般的な手段として使用されています。

// this is a JSON variable
var json = '{"foo": "bar", "bar" : "baz"}';

// obj is a JavaScript obj, defined by the object literal on the right hand side
var obj = {foo: 'bar', bar : 'baz'};
  • JSON-シリアル化されたオブジェクト。JSでオブジェクトを定義するのと同様の構文
  • オブジェクトリテラル-JSでオブジェクトを定義するための省略構文
  • オブジェクト-たとえば、オブジェクトリテラルによる定義の結果

JSでは、次を使用してJSON文字列をオブジェクトに変換できます。

var obj = JSON.parse( json );

オブジェクト(添付関数を除く)のJSON表現を次のように取得します

var json = JSON.stringify( obj );
于 2012-06-08T15:08:18.893 に答える
2

仕様によると、JSONでは、値であろうとキーワードであろうと、すべての文字列を二重引用符で囲む必要があります。

次の内容が含まれている場合、例は有効なJSON文字列になります。

{"foo": "bar", "bar": "baz"}
于 2012-06-08T15:05:29.933 に答える
0

オブジェクトリテラル:

mozillaを参照して、

オブジェクトリテラルは、中かっこ({})で囲まれた、オブジェクトのプロパティ名と関連する値の0個以上のペアのリストです。

Javascriptオブジェクト:

mozillaを参照して、

JavaScriptでは、オブジェクトはスタンドアロンエンティティであり、プロパティとタイプがあります

JSON:

mozillamozillaを参照する

JSON(JavaScript Object Notation)は、データ交換形式です。厳密なサブセットではありませんが、JavaScript構文のサブセットによく似ています。JSONは、オブジェクト、配列、数値、文字列、ブール値、およびnullをシリアル化するための構文です。これはJavaScript構文に基づいていますが、それとは異なります。一部のJavaScriptはJSONではなく、一部のJSONはJavaScriptではありません。

ゆるい言葉で、

Anobjectは、プロパティとタイプを持つことができるjavascript変数です。

Anobject literalは、プロパティと関連する値をに割り当てる方法objectです。

JSONは、object literal文字列としてラップされるデータ交換に使用されるより厳密なものです。

function(通常、すべての言語で使用できるようにするための厳密性があります。値として使用することはできません。key常に二重引用符で囲む必要があります(オブジェクトリテラルでは必須ではありません))

于 2012-06-08T15:52:29.700 に答える