《JavaScript高级程序设计》学习笔记10:再说JSON


之前写过一篇关于JSON的笔记,现在看来当初根本没搞清楚什么是JSON。所以,即使是很简单的知识,很难一遍学会,需要两遍,甚至多遍,因为第一次往往受限于以往的经验(知识)。

比如,我会迷惑于“JSON对象”和“JavaScript对象”有什么区别、“JSON字符串”和“字符串”不一样吗?当纠结于这些名词时,往往会把自己搞晕。这时候应该放弃对概念的执著,回到具体形式。

而且,我之前确实忽略了:JSON有三种类型。不仅有对象这种类型,还有简单值和数组,下面这几种形式都是JSON的有效值:

5

"Hello world!"

[25, "hi", true]

其中,"Hello world!"是一个字符串,所以,我们不必强调一个字符串是JavaScript字符或JSON字符串。当提到JSON字符串时,一般指由JavaScript对象序列化得到的字符串:

var book = {
    title: "Professional JavaScript",
    authors: ["Nicholas C. Zakas"],
    editor: 3,
    year: 2011
}
var jsonText = JSON.stringify(book);

这里,jsonText就是一个JSON字符串。

但是,JSON对象和JavaScript对象却有明显的区别,我觉得这也是理解JSON的关键,即JSON是一种数据格式,而不是编程语言,比如:

var person = {
    name: "Nicholas",
    age: 29
}

person是一个JavaScript对象,一个变量。

类似的,JSON对象的形式如下:

{
    "name": "Nicholas",
    "age": 29
}

上面,是一个JSON对象,不是一个变量,也没有语句,所以末尾不需要分号。


附两个注意:
1. JSON中,字符串必须用双引号。
2. JSON中,对象的属性名必须加双引号。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值