zoukankan      html  css  js  c++  java
  • 第一课 JSON的简介

    建议:学习json之前需要对web在http间的通信一定的理解,对js有基础的知识。当然如果了解一点xml,会更方便你的理解和对比。


    1.什么是json

    json:javascript object notation(js的对象表示法)。
    json是一种存储和交换数据的语法,类似于xml(建议先学习xml,用三,四天的时间,浏览一遍xml,对xml有一个理解,对学习json有很大的帮助,xml比json的难度相对简单一点)
    json比xml更小,更快,更容易解析。
    文件扩展名为.json。

    json与js的关系
    首先要明确的是json是一种用来描述对象的数据格式,什么是数据格式,比如在c语言中的整形,实型就是一种数据格式,你可以理解为数据或者文本记录的规则。
    json的数据格式是采用js的语法来描述的,但是json并非一门单独的编程语言。

    2.json的应用

    json可以用在服务器和应用程序间的传输
    编写js应用程序,浏览器扩展等

    3.一个简单的例子

    {
    	"book":[
    		{
    			"name":"fromdark",
    			"author":"fromdark",
    		}
    	]
    }
    上面的例子描述了一本书的书名和作者。

    4.一个在浏览器上显示的json例子

    在你的编辑器里将下面的代码保存为.htm结尾的文件,并在浏览器打开,你会看到json如何在浏览器上显示的。
    <!DOCTYPE html>
    <html>
    <head>
    	<title>json example</title>
    	<script type="text/javascript">
    	var book={"name":"fromdark","author":"fromdark"};
    
    	document.write("<h1>NAME:</h1>"+book.name);
    	document.write("<br>");
    	document.write("<h1>AUTHOR:</h1>"+book.author);
    
    	</script>
    </head>
    <body>
    
    </body>
    </html>

    你也可以采用下面的代码书写方式,不过js的部分要放在下面,这和js的加载顺序有关。
    <!DOCTYPE html>
    <html>
    <head>
    	<title>json example</title>
    
    </head>
    <body>
    NAME:<p id="p1"></p>
    AUTHOR:<p id="p2"></p>
    
    
    	<script type="text/javascript">
    	var book={"name":"fromdark","author":"fromdark"};
    
    	document.getElementById("p1").innerHTML=book.name
    
    	document.getElementById('p2').innerHTML=book.author
    
    	</script>
    
    	
    </body>
    </html>


    5.jsonp

    jsonp是指json with padding。通过jsonp我们可以从别的网站获取资料或者数据。
    为什么使用jsonp呢,是因为有浏览器同源策略的限制(一种安全策略)。
    那么什么是同源策略呢,这里简单的解释一下,就是同域名,同协议,同端口。三个相同。
    举一个同源策略的应用场景来理解同源策略:
    比如你在登录自己的A网站帐号的时候,大多数人会选择记住自己的帐号和密码,这些记录会被保存在cookie中,下次登录的时候,A页面会自动读取这些信息。如果没有同源策略,那么你在登录B网页的时候,A的信息同样会被B读取,这样你的帐号信息,密码就会暴露(现实的情况下,你会发现,你在登录一些B网页的时候,会发现A的用户名会自动补全就是采用了同源策略规避,不过这不会盗取你的密码这样重要的信息)。继续,采用了同源策略,如果浏览器检测到不是同域名,同协议或者同端口,就不会把信息泄露了。
    jsonp的知识相对复杂,设计服务器和客户端的知识和编码,这里先简单介绍。




    本博客基于网络课程完成,旨在学习,有错误请指正!
  • 相关阅读:
    降维
    latex 中文
    Java基础——通信
    Java基础——文件读取
    Java基础——哈弗曼树的Java实现(构建、遍历输出、哈弗曼编码)
    Java基础——表达式二叉树的Java实现构建(构建+前序、中序、后序遍历)
    MYSQL和ORACLE的一些区别
    快速排序
    冒泡排序
    希尔排序
  • 原文地址:https://www.cnblogs.com/comefuture/p/8305975.html
Copyright © 2011-2022 走看看