javascript - Javascript对象和JSON对象有什么区别

谁能通过例子告诉我Javascript对象和JSON对象的区别?

最佳答案

Javascript object 是 Javascript 中的一种数据类型 - 它仅在 Javascript 中才有意义。通常你会看到像这样的 Javascript 对象文字:

var obj = {
    a: 1,
    b: 2
};

JSON string 是一种数据交换格式——它只不过是一堆以特定方式格式化的字符(以便不同的程序相互通信)。因此,它可以存在于 Javascript 中,也可以存在于其他语言中,也可以简单地存储在数据库或文本文件中。

上面的 Javascript 对象可以用 Javascript 中的 JSON 格式表示,如下所示:

var json = '{ "a": 1, "b": 2 }';

或者在 C# 中像这样:

string json = "{ \"a\": 1, \"b\": 2 }";

如您所见,JSON 只是存储在字符串中。为了使其有用,可以解析 JSON 字符串以生成任何语言的对象。因为 JSON 格式模仿了 Javascript 的对象文字语法,所以 Javascript 使解析过程变得简单:

var obj = eval('(' + json + ')');

虽然通常你会看到:

var obj = JSON.parse(json); // for security reasons

请注意,JSON 的局限性在于它不能存储函数 - 它可以包含的唯一值是:

  • 对象(文字)
  • 数组
  • 数字
  • bool 值
  • 字符串
  • 空值

https://stackoverflow.com/questions/6489783/

相关文章:

c# - JavaScriptSerializer 可以排除具有空值/默认值的属性吗?

javascript - 未捕获的类型错误 : Cannot read property 'owne

python - 如何在 Django REST 框架中返回自定义 JSON

python - 使用 Scrapy 抓取 JSON 响应

c# - 使用 C# 调用 json

json - 雅虎财经全币种报价 API 文档

php - 如何防止 json_encode() 删除包含无效字符的字符串

json - 在单行上从 jq 获取输出

PHP json_encode - JSON_FORCE_OBJECT 混合对象和数组输出

json - angularjs - ng-重复 : access key and value fr