JSON


JSON(JavaScript Object Notation,JavaScript对象标记法)是一种存储和交换数据的语法,经常在数据从服务器发送到网页时使用

JSON的语法是来自JavaScript对象符号的语法,但JSON格式是纯文本,JavaScript程序可以很容易地将JSON数据转换成本地的JavaScript对象

交换数据

当数据在浏览器与服务器之间进行交换时,这些数据只能是文本

JSON属于文本,并且我们能够把任何JavaScript对象转换为JSON,然后将JSON发送到服务器,我们也能把从服务器接收到的任何JSON转换为JavaScript对象,以这样的方式,我们可以把数据作为JavaScript对象来处理,无需复杂的解释和转译

存储数据

JSON让JavaScript对象存储为文本成为可能



JSON数据类型

有效的数据类型

在JSON中,值必须是以下数据类型之一:

  • 字符串(必须用双引号包围)
  • 数字(必须是整数或浮点数)
  • 对象(JSON对象)
  • 数组
  • 布尔
  • null

JSON的值不可以是以下数据类型之一:

  • 函数

  • 日期(JSON中不允许日期对象,如果需要包含日期,可以写成字符串,之后再用new Date()将其转换回日期对象

    var text =  '{ "name":"Bill Gates", "birth":"1955-10-28", "city":"Seattle"}';
    var obj = JSON.parse(text);
    obj.birth = new Date(obj.birth);
    

    也可以使用JSON.parse()函数的第二个参数,被称为reviver,这个reviver参数是函数,在返回值之前,它会检查每个属性

    var text =  '{ "name":"Bill Gates", "birth":"1955-10-28", "city":"Seattle"}';
    var obj = JSON.parse(text, function (key, value) {
        if  (key == "birth") {
            return new Date(value);
        } else {
             return value;
       }});
    
  • undefined

注意:JSON数据的书写方式是名称/值对,类似于JavaScript对象属性,但是JSON名称需要双引号,而JavaScript对象的名称不需要



JSON解析

JSON的常规用途是从web服务器读取数据,与web服务器进行数据传输;

在从web服务器接收数据时,数据永远是字符串;

把JSON文本转换为JavaScript对象

通过JSON.parse()解析数据,这些数据会成为JavaScript对象

把JavaScript对象转换为JSON文本

通过JSON.stringify()可以把JavaScript对象转换成字符串,即JSON文本

注意:在JSON中,函数不能作为对象值,JSON.stringify()函数将从JavaScript对象删除任何函数,包括键和值:

var obj =  { "name":"Bill Gates", "age":function () {return 62;}, "city":"Seattle"};
JSON.stringify(obj); // 返回"{"name":"Bill Gates","city":"Seattle"}"



JSON vs XML

JSON和XML均可用于从web服务器接收数据

JSON实例

{"employees":[
    { "firstName":"Bill", "lastName":"Gates" },
    { "firstName":"Steve", "lastName":"Jobs" },
    { "firstName":"Elon", "lastName":"Musk" }
]}

XML实例

<employees>
    <employee>
         <firstName>Bill</firstName>
         <lastName>Gates</lastName>
     </employee>
     <employee>
         <firstName>Steve</firstName>
         <lastName>Jobs</lastName>
     </employee>
     <employee>
         <firstName>Elon</firstName>
         <lastName>Musk</lastName>
     </employee>
</employees>

JSON类似XML,因为:

  • JSON和XML都是“自描述的”(人类可读的)

  • JSON和XML都是分级的(值中有值)

  • JSON和XML都是被大量编程语言解析和使用

  • JSON和XML都是被XMLHttpRequest读取

JSON与XML的差异在于:

  • JSON不使用标签
  • JSON更短
  • JSON的读写速度更快
  • JSON可使用数组

最大的不同之处:

XML必须使用XML解析器进行解析。而JSON可通过标准的JavaScript函数进行解析

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值