美文网首页
day8(1.10) JSON

day8(1.10) JSON

作者: 留白_汉服vs插画 | 来源:发表于2018-01-10 22:37 被阅读18次

不颓废了,加油!我可以的。

本章内容

理解JSON语法

解析JSON

序列化JSON

对于json最重要的是理解它是一种数据结构,一种表示数据结构化的格式。而不是编程语言,很多编程语言都有对json的解析器和序列化器。

语法

json的语法可以表示三种类型的值:

简单值:使用与JavaScript相同的语法,可以表示null,number,String,boolean,但是不能表示undefined。比如 5,就是json表示的数值5的方式。“Hello World”就是字符串的方式。不过json的字符串必须使用双引号。

对象:无序的键值对,每个键值对中的值,可以是简单值,也可以是复杂的。同JavaScript 3个区别是,1、必须属性名必须加双引号,单引号也不行,比如

{    "name":"WangHaiyang" ,

      "age":29     }

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

2、使用逗号隔开,不是JavaScript语法,所以不是分号。

3、没有变量的概念,不能声明变量。

数组:一组有序的值的列表,可以通过数值索引来访问其中的值。 在JavaScript中var values = [25, "hi", true]; 􏱯 在JSON 中,􏲺􏱡􏷑􏰤􏰪􏳺􏰝􏳯􏱷􏲓􏳞􏰪􏰮􏲞􏲤􏵐􏶂一个数组为[25, "hi", true],

更复杂的是json的数组这能够每一项都是对象。

[ {

    "title": "Professional JavaScript",

    "authors": [ "Nicholas C. Zakas" ],

    edition: 3, year: 2011 },

    {

        "title": "Professional JavaScript",

        "authors": [ "Nicholas C. Zakas" ],

        edition: 2, year: 2009 }

]

这个数组里包含了一些表示图书的对象。每个对象几个属性。某个属性又可以是一个数组。

􏵦􏵧􏳖􏵨􏵩􏵪解析与序列化

JSON对象有两个方法:

stringfy():把JavaScript对象序列化成为json字符串。

parse():把json字符串解析为原生的JavaScript值。

此外还有一个eval()可以解析、解释并返回JavaScript对象和数组。

举例子:

得到字符串如下:

{"title":"Professional JavaScript","authors":["Nicholas C. Zakas"],"edition":3,"year":2011}

同理,可以var bookCopy = JSON.parse(jsonText);

JSON.stringify() 还可以接受两个参数,这两个参数用于指定不同方式序列化JavaScript对象。第一个参数是过滤器,可以是一个数组也可以是一个函数。第二个参数是一个过滤器,表示是否在json字符串中保留缩进。比如:

过滤器:

返回的结果字符串中,只包含这两个过滤的属性:{"title":"Professional JavaScript","edition":3}

如果是函数,函数会接收两个参数,属性名和属性值。如下:

函数过滤器会根据传入的键来决定结果

字符串缩进:JSON.stringfy() 第三个参数用来控制结果中的缩进和空白符。如果是一个数字,表示每个级别缩进的空格数。

如果缩进参数是一个字符不是数字,则表示用字符来缩进。如下:

var jsonText = JSON.stringify(book, null, " - -");得到:

{

--"title": "Professional JavaScript",

--"authors": [ ----"Nicholas C. Zakas" --],

--"edition": 3,

--"year": 2011

}

字符串不能超过10个,超过了,只取前10个。

toJSON方法,省略。

JSON.parse()

可以接收另一个参数,该参数是一个函数,这个函数接收两个参数,就是键名和键值。

总结

JSON是一个轻量级的数据格式,可以简化表示复杂数据结构的工作量。JSON使用JavaScript语法的子集表示对象、数组、字符串、数值、布尔值和null。即使XML也能表示同样复杂的数据结果,但JSON没有那么烦琐,而且在JavaScript中使用更便利。

ECMAScript5定义了一个原生的JSON对象,可以用来将对象序列化为JSON字符串或者将JSON数据解析为JavaScript象。JSON.stringify()和JSON.parse()方法分别用来实现上述两项功能。

相关文章

  • day8(1.10) JSON

    不颓废了,加油!我可以的。 本章内容 理解JSON语法解析JSON序列化JSON 对于json最重要的是理解它是一...

  • CocoaPods 1.10 beta 解锁新技能

    CocoaPods 1.10 beta 解锁新技能CocoaPods 1.10 beta 解锁新技能

  • VNote 1.10之片段 (Snippet)

    1. VNote 1.10之Snippet片段 VNote 1.10版本发布啦!1.10包含了很多重要的更新,带来...

  • 1 go开发环境搭建

    1.1 编译器安装 下载go1.10.linux-amd64.tar.gz包,将go1.10.linux-am...

  • 2018-09-09

    Day8

  • 100天实验

    day8

  • Goodbye my holiday

    day8

  • 今日份摄影作品(运动)

    Day8

  • 1.10

    今天工作量比较大,干的这几天都是钳工的活,组长说如果留下的话将来就是做这些,装板子,烧程序是唯一和嵌入式有关的工作...

  • 1.10

    其实,大妖怪是我的铠甲。 因为,我一想到他,就觉得我必须要很努力,才有可能像他一样厉害。 如果你很喜欢一个人,你是...

网友评论

      本文标题:day8(1.10) JSON

      本文链接:https://www.haomeiwen.com/subject/qvhanxtx.html