JSON那点事?

一、什么是JSON?

1、JSON指的是JavaScript对象表示法(JavaScript  Object Notation)

2、JSON是轻量级的文本数据交换格式

3、JSON独立于语言

4、JSON具有自我描述性,更易理解

总结为一句话就是:JSON使用JavaScript语法来描述数据对象,但是JSON依然独立于语言和平台,JSON解析器和JSON库支持许多不同的编程语言

JSON本来用来表示JavaScript对象的一种书局文本格式,但是由于他的轻量级、易解析,操作等一些特点,渐渐的被很多语言支持

二、XML与JSON实例的比较:

1、使用XML表示中国部分省市的数据:

<?xml version="1.0" encoding="utf-8" ?>
<country>
    <name>中国</name>
    <province>
        <name>黑龙江</name>
        <citys>
            <city>哈尔滨</city>
            <city>大庆</city>
        </citys>    
    </province>
    <province>
        <name>广东</name>
        <citys>
            <city>广州</city>
            <city>深圳</city>
            <city>珠海</city>
        </citys>   
    </province>
    <province>
        <name>台湾</name>
        <citys>
            <city>台北</city>
            <city>高雄</city>
        </citys> 
    </province>
    <province>
        <name>新疆</name>
        <citys>
            <city>乌鲁木齐</city>
        </citys>
    </province>
</country>

     2、使用JSON表示中国部分省市数据

var country =
    {
        name: "中国",
        provinces: [
            { name: "黑龙江", citys: { city: ["哈尔滨", "大庆"]} },
            { name: "广东", citys: { city: ["广州", "深圳", "珠海"]} },
            { name: "台湾", citys: { city: ["台北", "高雄"]} },
            { name: "新疆", citys: { city: ["乌鲁木齐"]} }
        ]
    }

   三、JSON相比XML的不同之处:

在JSON之前,我们通常在网络传输中使用的格式是XML,

  •          XML的特点:较好的可读性,格式统一,解析简单
  •          JSON相比XML的特点:更小、更快,更易解析

                    (1)JavaScript原生支持JSON,解析速度会比XML更快

                    (2)XML解析DOM对象的时候,浏览器之间会产生差异

                    (3)JSON有很多强大的库能帮助我们更快更简单的完成工作

                    (4)没有结束标签,更短,读写速度快,能够使用JavaScript内建eval()函数进行解析,使用数组,不使用保留字

*作用:<>XML:读取XML文档;使用XML DOM来循环遍历文档;读取值并存储在变量中

            <>JSON:读取JSON字符串;用eval()处理JSON字符串

四、JSON的具体学习

1、JSON语法

客户端与服务器交换的数据无非就是两种:数组或者对象,JSON也无非就是这两种,JSON语法是JavaScript语法的子集,在JavaScript中用[]来表示数组,,用{}来表示对象,例如:

//JSON数组(元素为对象的数组)
var employees = [
    { "firstName":"Bill" , "lastName":"Gates" },
    { "firstName":"George" , "lastName":"Bush" },
    { "firstName":"Thomas" , "lastName": "Carter" }
];
//JSON对象
var obj = {

    age:20,
    str:"wmyskxz",
    method:function() {
        alert("我爱学习");
    }

};

2、解析JSON

首先来创建一个JSON对象

(1)使用HTML解析

在HTML中我们可以直接使用"."点号来直接访问JSON对象的属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JSON学习</title>
</head>
<body>
<p>
    Name:<span id="name"></span><br>
    Age:<span id="age"></span><br>
</p>

<script>
    var JASONObject = {"name": "我没有三颗心脏", "age": 21};

    document.getElementById("name").innerHTML = JASONObject.name;
    document.getElementById("age").innerHTML = JASONObject.age;
</script>
</body>
</html>

显示效果如下:

但是通常情况下,我们拿到和上传的并不是一个真正的jJSON对象,而是一串由JSON转化得到的字符串,比如可以这样表示:

<script>
    var txt = '{"students":[' +
        '{"name":"我没有三颗心脏0","age":21},' +
        '{"name":"我没有三颗心脏1","age":21 }]}';

    var obj = eval("(" + txt + ")");

    document.getElementById("name").innerHTML = obj.students[1].name;
    document.getElementById("age").innerHTML = obj.students[1].age;
</script>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值