1.json语法
json有两个数据结构组成:
对象----->名/值对的无序集合。
数组----->值的有序集合。
json没有变量或其它控制结构。json只用于数据源传输。
json语法是基于对象字面量的数组字面量的JavaScript语法。当使用字面量时,将包括数据本身,当不包括生成数据的表达式。
2.数据类型
字符串
数字
布尔值
null
对象
数组
json字符串必须使用双引号包括起来。它们使用标准的JavaScript转义序列。
引号、空格(b)、新行(n)、f(换页)、r(回车)、t(水平定位)、u(为Unicode字符增加4个字符)、/(正)、\(反)
3.对象字面量
使用对象构造函数或对象字面量可以定义JavaScript对象。若要使用对象构造函数定义新对象,可以使用new关键字的Object构造函数。
var jsonObject = new Object();
然后,使用点符号为对象添加属性:
jsonObject .name = "Jobo";
jsonObject .address = "325 Smmith Rd";
也可以使用数组语法为对象添加属性。
jsonObject ["name"]= "jobo";
jsonObject ["address"]= "325....";
通过使用对象字面量,可以更有效率地创建同一对象。
var jsonObject = {
name="jobo",
address ="325..."
};
json不使用构造函数,只使用字面量。
没有分号
数组字面量:var myArray = [1218, "edfsk" ,"dsfu"];
4.使用json解析器
<script type="text/javascript" src="json.js"></script>
定义两个函数:
toJSONString():方法添加到JavaScript object 和array定义中,该方法能将JavaScript对象或数组转换成json文本。
parseJSON():该方法能从json文本中创建对象或数组。
5.xml与txt文件的区别。
xml与txt同样的数据时,xml占的内存比较大。所以访问速度是有问题。
6.Ajax和json
创建请求。如果直接请求服务器上一个json文件的json数据,则可以利用文件名请求json文件。
request.open("get","class2.txt",true);
解析相应
一旦接收服务器中的json数据,就可以采用两种不同的方式解析该响应。可以使用JavaScript的内置函数eval
().也可以内置
1.使用eval()
eval()方法可以把JavaScript字符串当作参数,还可以将字符串转换成对象。
eval("varmyDate = new Date();");
如果使用XMLHttpRequest对象的responseText属性请求json数据,那么使用eval()将json文本字符串转换成JavaScript对象。
var jsonResp = request.responseText();
jsonResp= eval("(" + jsonResp +")");
2.使用parseJSON()
如果web服务器即提供了json数据也提供了请求页面,则适合选用eval()方法。如果涉及安全,则适合用json解析器。
var jsonResp = request.responseText();
jsonResp= jsonResp.parseJSON();
为了访问parseJSON()函数,还需要添加引用json.js文件的script标记。
<script type ="text/javascript" src="json.js" ></script>
7.将json数据添加到页面。
一旦将json数据转换为JavaScript对象,就可以使用JavaScript从该对象 中提取数据。
8.如何将后台数据压入页面json中。
/**将对象压入栈顶*/
public static void putValueStack(Objectobject) {
ServletActionContext.getContext().getValueStack().push(object);
}