javascript - JSON 对象与 Javascript 对象

标签 javascript json

<分区>

我是 JS 和 JSON 的新手,正在尝试了解它们之间的区别,我看到了其他关于这种区别的帖子,但仍然有一些 Unresolved 问题,

我创建了 3 个对象

  1. 双引号中的键值对
  2. 键不带引号但值带引号
  3. 单引号中的键值对。

问题。

  1. Asis,假设这 3 个对象都是 Javascript 对象是否安全?
  2. 我如何在这里确定哪个是 JSON 对象,当我在日志中打印对象时,所有对象看起来都一样。有没有办法确定 JSON 对象?
  3. 如果 JSON 对象 - 键值对用双引号括起来,单引号是什么意思?

代码:

<html>
    <head>
        <script>
            var jsobject = {"fname":"Bob","lname":"Mike"}
            console.log(jsobject)

            var jsobject = {fname:"Bob",lname:"Mike"}
            console.log(jsobject)

            var jsobject = {'fname':'Bob','lname':'Mike'}
            console.log(jsobject)

        </script>
    </head>
    <body>
    </body>
</html>

最佳答案

我认为您混淆了语法和数据。

许多技术都可以具有非常相似的语法,但相似的语法可能用于完全不同的目的,并用于创建截然不同的数据。

当我们谈论 JSON 时,我们谈论的是具有 Unicode 编码的文本数据,该编码遵循旨在用作数据传输机制的字符语法。 JSON 数据可以传输到各种不同的编程环境中,进行解析,然后转换为对环境有意义的实际对象结构。

之所以将其命名为“JavaScript 对象表示法”,是因为它的表示法主要是仿照 JavaScript 程序中用于创建对象和原始值的文字语法的子集 模式化的。遗憾的是,这种命名方式让 JavaScript 开发人员感到困惑。

因此,要确定您是否正在处理 JSON,最终要考虑的最重要的事情是您正在做的事情是否会导致创建遵循 JSON 语法规则的 Unicode 数据。

举个例子:

var foo = {"bar":"baz"};

那是 JSON 吗?好吧,如果它在 JavaScript 程序中运行,它将被评估,并且 foo 将持有对一些非 Unicode 文本数据的内存的引用。

当然,我们可以隔离代码的 {"bar":"baz"} 部分,并将其传输到自己的编码为 Unicode 的文本文件中,但我们真的不能不再处理同一个例子。

假设我们做到了。我们打开我们的文本编辑器,确保它设置为 Unicode 编码,然后粘贴上面代码的那一部分。所以现在我们的整个文本文件是这样的:

{"bar":"baz"}

现在我们可以正确地说我们有 JSON 数据。如果我在末尾添加一个 ; 会怎么样?

{"bar":"baz"};

它不再是 JSON,因为它已被 ; 损坏,这是不允许的。同样,我们可以将它称为 JSON except 来表示任何无效的内容,但实际上它要么是有效的,要么是无效的。

回到 JavaScript 示例。在 JavaScript 程序的语法中引用 JSON 是否有意义?以我们原来的例子为例。如果我们可以使用一些 JavaScript 语法来创建 Unicode 数据并使其符合 JSON 语法,那么是的,我们可以正确地说在我们的程序中使用 JSON。

那么 JavaScript 让我们创建 Unicode 数据吗?是的,JavaScript 中的所有字符串都是 UTF-16 编码的。因此,我们需要做的就是创建一个字符串。

var foo = '{"bar":"baz"}';

现在我们不会将整行称为 JSON,但我们可以正确地说 foo 变量指的是保存 JSON 数据的内存。

然后我们可以将该数据传输到用完全不同的编程语言编写的服务器,只要它有 JSON 解析器,它就可以解析它,并将其转换为对该服务器有意义的任何对象类型。

关于javascript - JSON 对象与 Javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20805918/

相关文章:

java - 将 JSON 处理为类

ios - 从 JSON 响应中解析

java - 使用 Jackson 通过 java pojo 将 XMl 转换为 JSON

javascript - Dojo/Angular 范围问题

javascript - 单击按钮添加/删除类

json - 如何使用 jq 将当前日期和时间附加到现有 json 文件中

javascript - 递归扩展json对象

javascript - Angular 2 : Problems with imports not finding modules

javascript - PJAX延迟页面加载

javascript - Jquery 动画仅在鼠标移动时显示。