0
var foo = { "a": 1, "b": true, c: [1, true, "2"] };

ここで間違っている場合は訂正してください。ただし、私の知る限り、これは有効な json オブジェクトです。しかし、これは JavaScript オブジェクトでもあります。

JSON オブジェクトは JavaScript 言語に基づいていますか? それとも逆ですか?

ありがとう

4

5 に答える 5

4

JSONオブジェクトはjavascript言語に基づいていますか?

はい。

仕様を参照してください:

JavaScript Object Notation(JSON)は、軽量でテキストベースの言語に依存しないデータ交換形式です。これは、ECMAScriptプログラミング言語標準から派生したものです。

ECMAScriptはJavaScriptの標準化されたバージョンであることに注意してください。

于 2012-08-22T19:54:56.793 に答える
1

JSONWebサイトから

JSON(JavaScript Object Notation)は、軽量のデータ交換形式です。人間は読み書きが簡単です。マシンが解析して生成するのは簡単です。これは、JavaScriptプログラミング言語のサブセットに基づいています。

だからあなたの質問への答えはイエスになります。

于 2012-08-22T19:56:38.090 に答える
1

「ここで間違っている場合は訂正してください。ただし、私の知る限り、これは有効な json オブジェクトです」

いいえ。

「しかし、これは JavaScript オブジェクトでもあります。」

はい。

更新:私の元の回答は以下に続きますが、@badunkによって指摘された重要な構文エラーを見逃していました

文字列

{ "a": 1, "b": true, c: [1, true, "2"] }

JSONです。JSON は単なる表記に関するものです。有効な構文を構成するシンボルと、それらが処理された場合の意味についてです。

あなたのコード:

var foo = { "a": 1, "b": true, c: [1, true, "2"] };

..JavaScript の一部です。これをパースして加工すると、代入の右側の部分をjavascriptオブジェクトリテラルと呼びます。つまり、リテラル オブジェクトを表す JavaScript の一部です。しかし、これは実際にはオブジェクトであるため、もはや記法ではありません。実行時のデータ構造に処理されます。

JSON という用語は、たとえば HTTP を介したデータ交換について話しているときに役立ちます。HTTP 応答が次のような文字列を渡す場合:

{ "a": 1, "b": true, c: [1, true, "2"] }

これは有効な JSON です。それが解釈されると、javascript オブジェクトになります。

于 2012-08-22T20:02:15.773 に答える
1

@Roland が指摘したように、ステートメント自体は JSON ではなく JavaScript 式です。ただし、それを無視して、以下が JSON であるかどうかを評価します。

{ "a": 1, "b": true, c: [1, true, "2"] }

ここでの他の回答には同意しません。これは有効な JSON ではありません。厳密に言えば、プロパティは引用符で囲む必要があります。ここの SO 投稿を参照してください。これは正しい JSON です。

{ "a": 1, "b": true, "c": [1, true, "2"] }
于 2012-08-22T20:26:21.550 に答える
1

「JSON オブジェクト」 (http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/) のようなものはないと主張することができます。

上記のコードは、実際にはオブジェクト リテラルです。一方、JSON は単なるオブジェクトの文字列表現、つまりシリアル化です。

于 2012-08-22T20:04:25.633 に答える