美文网首页
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

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