我是JS和JSON的新手,并试图了解其中的差异,我看到其他线索有这个差异,但仍然没有几个未回答的问题,
我创建了3个对象
问题。
代码:
<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>
答案 0 :(得分:2)
我认为你的语法和数据令人困惑。
任何数量的技术都可以使用非常相似的语法,但类似的语法可能会用于完全不同的目的,也可能用于创建截然不同的数据。
当我们谈论JSON时,我们讨论的是具有Unicode编码的文本数据,该编码遵循用作数据传输机制的字符语法。 JSON数据可以传输到各种不同的编程环境中,进行解析,然后转换为对环境有意义的实际对象结构。
它被命名为“JavaScript Object Notation”的原因是它的符号主要是在JavaScript程序中用于创建对象和原始值的文字语法的子集之后形成的。遗憾的是,这种命名会导致JavaScript开发人员的混淆。
因此,要确定您是否正在处理JSON,最重要的是要考虑的是您所做的事情是否会导致创建遵循JSON语法规则的Unicode数据。
举个例子:
var foo = {"bar":"baz"};
那是JSON吗?好吧,如果它在JavaScript程序中运行,它将被评估,foo
将保存对某些非Unicode文本数据的内存的引用。
当然,我们可以隔离代码的{"bar":"baz"}
部分,并将其转移到自己编码为Unicode的文本文件中,但是我们真的不再处理相同的示例了。
所以我们说我们做到了。我们打开文本编辑器,确保它已设置为Unicode编码,然后粘贴上面代码的一部分。所以现在整个文本文件是这样的:
{"bar":"baz"}
现在我们可以正确地说我们有JSON数据。如果我在末尾添加了;
该怎么办?
{"bar":"baz"};
它不再是JSON,因为它已被;
破坏,这是不允许的。同样,我们可以将其称为JSON 除了之外的任何无效的东西,但它实际上是完整的还是无效的。
回到JavaScript示例。在JavaScript程序的语法中引用JSON是否有意义?好吧,拿我们原来的例子。如果我们可以使用一些JavaScript语法来创建Unicode数据并使其符合JSON语法,那么是的,我们可以正确地谈到在我们的程序中使用JSON。
那么JavaScript让我们创建Unicode数据吗?是的,JavaScript中的所有字符串都是UTF-16编码的。因此,我们需要做的就是创建一个字符串。
var foo = '{"bar":"baz"}';
现在我们不会调用整行JSON,但我们可以正确地说foo
变量指的是保存JSON数据的内存。
然后我们可以将数据传输到用完全不同的编程语言编写的服务器,只要它有一个JSON解析器,它就可以解析它,并将其转换为对该服务器有意义的任何对象类型。