本帖最后由 liu-aguang 于 2016-10-29 07:56 编辑
二. Json与Json内容解析
1. 什么是Json?
设想一个显示及时股价的网页,股价变化是频繁的。假如股价每次变动服务器都向客户端发送一个完整的网页,显然通信流量会是很大,并且速度也会受影响。解决的办法是: 显示股价的网页中固定不变的内容设计为单独网页;股价数据也单独为一个网页。这样每次股价变化服务器只需要传输变化的股价数据。当股价数据到达客户端后,由事先编制好的javaScript脚本解析股价文本,把数据写入显示股价的网页中。这个单独存放股价的网页文件一般就是Json文件,其扩展名为.json。
Json是一个纯文本文件,唯一功能就是用来存储,传输数据。由于是纯文本且格式简单,所以广泛应用于各种平台。
为了便于JavaScript脚本编程解析, Json数据的存放格式完全按JavaScript数组或对象格式设计.一个完整的Json文本内容, 它有时简单到仅是一个数组或对象形式,再复杂也不过是数组或对象自身嵌套或相互嵌套.比如:
用数组存放一组名单的Josn:
[“张三”,”李四”,”王五”,”孙六”]
用对象存放一个人相关信息的Json:
{“name”:”娇娇”,”sex”:”女”,”age”:18,”address”:”娘家”}
说明: 与JavaScript对象唯一不同处是,键名(名称)都加了引号.
例1:
Sub Json1()
Set oHTML = CreateObject("htmlfile")
Set oWindow = oHTML.parentWindow
Set http = CreateObject("Msxml2.XMLHTTP")
http.Open "GET", "http://pv.sohu.com/cityjson", False
http.send
strHtml = http.responseText
'oWindow.clipboardData.SetData "text", strHtml
'得到 var returnCitySN = {"cip": "218.72.14.14", "cid": "330100", "cname": "浙江省杭州市"}; 这就一个json文本。
oWindow.execScript strHtml
MsgBox oWindow.returnCitySN.cip
End Sub
讨论: json文本内容strHtml本身就是一条创建对象语句. 用execScript解析后,即可读取对象returnCitySn中的各项值.
下面的例2-4返回的json数据是&