写在前面:

  这个JSON很早前就已经有接触了,早些时候的对JSON的定义和使用模棱两可,知道在他的用处,但是具体深入去了解直到我今天重新回顾了一遍JavaScript才恍然大悟。果然复习是学习之母!

JSON

  首先来说明一下什么是JSON:
    JSON(JavaScript Object Notation)是一种最简单的串行化格式,他是JavaScript语言的一个子集,易于串行化和反串行化。那么,什么叫串行化和反串行化?在web页面中,相当于一个程序,如何去处理这些数据和存储数据,我们通过JavaScript去实现,但是,对象和数组不能仅仅存储起来,还要串行化他们,串行化是转换为其字符串表示的过程,串行化对象后,该对象的字符串表示就可以存储在更永久的存储设备中,或者传递给另一台计算机。那么数据在串行化中是以什么样的形式存在呢?串行化仅转换对象的结构和相关信息,在串行化的对象中只有属性。如果需要在JavaScript中处理该对象,就需要用到反串行化了。

  XML和JavaScript的局限

    XML,最早期技术人员用来存储和传输JavaScript的一种格式。XML便于人和机器阅读,但是也有一定的缺陷,XML的声明性语法给数据添加了许多额外的东西。通常文档存储一个对象所用到的字节数大,使用JavaScript解析不轻松,而且解析完要发送给服务器之前还要进一步对它进行串行化,不是很容易。

//XML文档
<person>
        <name>CIA</name>
        <age>21</age>
    </person>
//拿到XML文档的数据
var personElement = document.querySelector("person"),
            nameELement = personElement.querySelector("name").innerHTML,
            ageELement = personElement.querySelector("age").innerHTML
        var person ={
            name:nameELement,
            age:ageELement
        }        

 

  JSON可以表示的三种数据

    1.简单值

       常见的简单值有:字符串,数字,布尔值和null。但是JSON的字符串必须使用双引号。

    2.对象

       JSON是一种数据格式,不是语言,所以没有变量,函数和方法。仅定义对象的数据和结构。

       不需要分号。没有对象变量名。属性和值要用双引号,字面量值可以不需要。

{
    "name":"CIA",
    "age":22        
}

    3.数组

["CIA",22]

  串行化为JSON

    使用JSON的stringfy()方法,他接受任何值,对象或数组,并将它们串行化为JSON。

//JSON
        var json = JSON.stringfy(person);

  解析JSON

    使用JSON的parse()方法,返回得到对象。

var jsonCIA = JSON.parse(json),
            name = jsonCIA.name

 

Posted on 2020-06-27 16:34  Schrodinger'sdoris  阅读(137)  评论(0编辑  收藏  举报