当前位置: 首页 > 面试题库 >

JSON和JavaScript对象之间有什么区别?

郎同化
2023-03-14
问题内容

我是JSON和JavaScript对象的新手。

  • 有人可以解释JSON和JavaScript对象之间的区别吗?
  • 它们有什么用?
  • 这个比那个好吗?还是取决于情况?
  • 什么时候使用哪个,在什么情况下?
  • 为什么首先创建JSON?它的主要目的是什么?
  • 有人可以举例说明何时应该使用JSON而不是JavaScript对象,反之亦然吗?

问题答案:

首先,您应该知道什么是JSON:

  • 它是与 语言无关的 数据交换格式。

JSON的语法受JavaScript对象文字表示法的启发,但是它们之间存在差异。

例如,在JSON中,所有 键都 必须加引号,而在对象文字中,则不需要:

// JSON:
{ "foo": "bar" }

// Object literal:
var o = { foo: "bar" };

引号在JSON上是必需的,因为在JavaScript中(更确切地说在ECMAScript 3rd。Edition中),不允许将 保留字
用作属性名称,例如:

var o = { if: "foo" }; // SyntaxError in ES3

而使用字符串文字作为属性名称(引用属性名称)不会出现任何问题:

var o = { "if": "foo" };

因此,对于 “兼容性” (也许容易评估?),引号是强制性的。

JSON中的数据类型也限制为以下值:

  • string
  • number
  • object
  • array
  • 文字为:
    • true
    • false
    • null

Strings变化的语法。它们 必须双引号 分隔,而在JavaScript中,您可以互换使用单引号或双引号。

// Invalid JSON:
{ "foo": 'bar' }

可接受的JSON语法Numbers也发生了变化,例如0xFF,在JavaScript中,您可以使用十六进制文字,或(臭名昭著的)八进制文字,例如010。在JSON中,您只能使用十进制文字。

// Invalid JSON:
{ "foo": 0xFF }

有些错误的实现(Firefox 3.5+,IE8+,json2.js)错误地允许使用八进制文字,例如JSON.parse('01')应产生一个SyntaxError



 类似资料:
  • 问题内容: 谁能举例说明Javascript对象和JSON对象之间的区别? 问题答案: Javascript 对象 是Javascript 中的数据类型-仅在Javascript中才有意义。通常,您会看到这样的Javascript 对象文字 : JSON 字符串 是一种数据交换格式,它只不过是一串以特定方式格式化的字符(为了使不同的程序相互通信)。因此,它可以存在于Javascript或其他语言中

  • 本文向大家介绍json和对象有什么区别?相关面试题,主要包含被问及json和对象有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 JSON 是对象,但对象不一定是 JSON。 对象是由属性和属性值组成,也就是 KEY->VALUE 对。 对象中的 value 可以是任意的数据类型,包括函数。而 JSON 中的 value 不能为函数。

  • 问题内容: 使用JSON数组有什么区别和优点: 与JSON对象: 问题答案: 听起来不算聪明,但是… 和之间的区别是 使用和设置对象… 如果该值是一个变量,则可以像访问… 数组使用integer [1]索引并获取一个值。 [1]是的,我知道…在Java中,整数索引实际上已在后台转换为字符串。不用管 特别是在考虑JSON时,请考虑采用整数值的数组。

  • 问题内容: 后者是否仅引用由自定义构造函数创建的非原始函数对象(例如,var bird1 = new Bird();)? 问题答案: 这两个术语在ECMAScript规范中定义: 本机对象 ECMAScript实现中的对象,其语义由此规范而不是由主机环境完全定义。 注:本规范中定义了标准本机对象。一些本地对象是内置的。其他的可以在执行ECMAScript程序的过程中构造。 宿主对象 主机环境提供的

  • 本文向大家介绍rest参数和Javascript中的arguments对象之间有什么区别?,包括了rest参数和Javascript中的arguments对象之间有什么区别?的使用技巧和注意事项,需要的朋友参考一下 休息参数 使用rest参数,您可以将多个参数表示为数组。ES6带来了rest参数,以简化开发人员的工作。对于参数对象,其余参数由三个点…表示,并位于参数之前。 参数对象 JavaScr

  • 问题内容: 我正在使用Eclipse来帮助我清理一些代码以正确使用Java泛型。大多数时候,它在推断类型方面做得非常出色,但是在某些情况下,推断类型必须尽可能地通用:对象。但是Eclipse似乎给了我一个选择,可以选择对象类型还是“?”类型。 那么两者之间有什么区别? 和 问题答案: 匹配项的实例,但不是。假设您要编写一个接受Strings到任何内容的映射的方法:如果您要编写 您无法提供。如果你写