var foo = { "a": 1, "b": true, c: [1, true, "2"] };
ここで間違っている場合は訂正してください。ただし、私の知る限り、これは有効な json オブジェクトです。しかし、これは JavaScript オブジェクトでもあります。
JSON オブジェクトは JavaScript 言語に基づいていますか? それとも逆ですか?
ありがとう
var foo = { "a": 1, "b": true, c: [1, true, "2"] };
ここで間違っている場合は訂正してください。ただし、私の知る限り、これは有効な json オブジェクトです。しかし、これは JavaScript オブジェクトでもあります。
JSON オブジェクトは JavaScript 言語に基づいていますか? それとも逆ですか?
ありがとう
JSONオブジェクトはjavascript言語に基づいていますか?
はい。
仕様を参照してください:
JavaScript Object Notation(JSON)は、軽量でテキストベースの言語に依存しないデータ交換形式です。これは、ECMAScriptプログラミング言語標準から派生したものです。
ECMAScriptはJavaScriptの標準化されたバージョンであることに注意してください。
JSONWebサイトから
JSON(JavaScript Object Notation)は、軽量のデータ交換形式です。人間は読み書きが簡単です。マシンが解析して生成するのは簡単です。これは、JavaScriptプログラミング言語のサブセットに基づいています。
だからあなたの質問への答えはイエスになります。
「ここで間違っている場合は訂正してください。ただし、私の知る限り、これは有効な 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 オブジェクトになります。
@Roland が指摘したように、ステートメント自体は JSON ではなく JavaScript 式です。ただし、それを無視して、以下が JSON であるかどうかを評価します。
{ "a": 1, "b": true, c: [1, true, "2"] }
ここでの他の回答には同意しません。これは有効な JSON ではありません。厳密に言えば、プロパティは引用符で囲む必要があります。ここの SO 投稿を参照してください。これは正しい JSON です。
{ "a": 1, "b": true, "c": [1, true, "2"] }
「JSON オブジェクト」 (http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/) のようなものはないと主張することができます。
上記のコードは、実際にはオブジェクト リテラルです。一方、JSON は単なるオブジェクトの文字列表現、つまりシリアル化です。