JavaScriptobject是 Javascript 中的一种数据类型 - 仅在 Javascript 中才有意义。你经常会看到 Javascript对象字面量像这样:
var obj = {
a: 1,
b: 2
};
A JSON string是一种数据交换格式 - 它只不过是一堆以特定方式格式化的字符(以便不同的程序相互通信)。因此,它可以存在于 Javascript 中,或者以其他语言存在,或者简单地存储在数据库或文本文件中。
上面的 Javascript 对象可以在 Javascript 中以 JSON 格式表示,如下所示:
var json = '{ "a": 1, "b": 2 }';
或者在 C# 中这样:
string json = "{ \"a\": 1, \"b\": 2 }";
正如您所看到的,JSON 只是存储在字符串中。为了使其有用,JSON 字符串可以是parsed以任何语言生成一个对象。由于 JSON 格式模仿了 Javascript 的对象字面量语法,因此 Javascript 使解析过程变得简单:
var obj = eval('(' + json + ')');
虽然通常你会看到:
var obj = JSON.parse(json); // for security reasons
请注意,JSON 的局限性在于它无法存储函数 - 它可以包含的唯一值是:
- 对象(文字)
- arrays
- numbers
- booleans
- strings
- nulls