JavaScript-JSON详解

JSON


json:JavaScript object notation:是一种数据格式,不是一种编程语言,虽然具有相同的语法形式,但是json并不属于JavaScript,而且,而且并不是只有JavaScript才能使用,json是一种轻量级数据交换格式

在js中主要用于和服务器做数据格式交换

json的结构:因为json是JavaScript的子集,他的结构有JavaScript对象和数组组成,这两种结构可以组成复杂的结构

语法:
   1.简单值:使用与JavaScript相同的语法,可以在json中表示字符串、数值、布尔、null,
      主要:但是不支持js特殊值undefined
   2.对象:对象作为一种复杂的数据类型,表示的是一组有序的键值对,而每个键值对中的值可以是简单值,也可以是复杂的数据类型
   3.数组:也是一种复杂的数据类型,表示一组有序值的列表,可以通过数值的索引来访问其中的值,数组的值可以是任意类型
       简单值---对象--数组
    

简单值


例如:有效的json数据:5
这是json表示数值5的方式,
表示字符串:
 “hello world”

区别:
  json和JavaScript字符串的最大区别:
     json字符串必须用双引号(用单引号会导致语法错误)
     JavaScript字符串可以用单引号或双引号
     
 布尔值和null也是有效的json形式,但是在实际中,json更多的用在复杂的数据结构中的一部分
 

对象


json中的对象与JavaScript字面量略有不同,
JavaScript字面量:
 var persion={
   name:"ssd",
   age:22
 };

json表示上述对象的方式:
  {
     name:"ssd",
   age:22
  }

区别:
   与JavaScript的对象字面量相比
     1.没有声明变量(json中没有变量的概念)
     2.没有末尾的","()
    3.对象的属性必须加双引号,在json里是必须的,属性值可以是简单值,复杂的数据类型
例如;json嵌套    
    {
      “name”:"sdff",
      "age":23,
      "school":{
        "name":"sdfgh",
        "age":23
      }
    }

数组


json中,数组
格式:
[23,"dd",true]
注意:json数组也没有变量和分号

解析和序列化


1.可以将json数据结构解析成JavaScript对象,

注意:
   1.并的数据用“,”表示
   2.映射用“:”表示
   3.并列数据结构是数组用[]表示
   4.并列数据结构是对象用{}表示
   
 json值的类型:
    1.number类型:  和js中number类型一样
    2.Boolean   true  false
    3.String类型
    4.null
    5.数组Array类型
    6.object类型
    
    
 序列化:把JavaScript对象转换成json格式的字符串,通过网络给其他应用使用
      JSON.stringify();
 反序列化:把JSON字符串转换成JavaScript对象
     JSON.parse();


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
    </style>
</head>
<body>

</body>
</html>
<script type="text/javascript">
//创建字面量对象
    var person={
        name:"张三",
        age:23,
        dog:{
            dogName:"nimao"
        },
        friends:[
            {
                friendName:"李四"
            },
            {
                friendName:"王五"
            }
        ],
        isMarry:false
    }
//    序列化
    var jsonStr=JSON.stringify(person);
    alert(jsonStr);

    //反序列化
    var jsObj=JSON.parse(jsonStr);
    alert(jsObj);

</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值