json是一种跨平台的数据交换格式,相比与xml它更轻量,占用资源更少,速度更快,但是它的格式较少,但对于ajax来说足够了

服务端把对象转化成字符,用json传送,数据被ajax对象接受后,被json转化成对象,再显示出来


首先说说json的语法 (在js中写)

1 表示一个对象

var obj={"company":"达内","address:{"city":"beijing","stress","huayuanstress","root":701}}

(这个对象表示有嵌套的意思)

alert(obj.address.room)

2 表示由对个对象组成的数组

var obj=[{"name":"minglou","age":30},{"name":"gucheng","age":33}];

alert(obj[1].age)


其次说说如何使用json

两个方面走

一是从java对象或者是对象数组变成json字符串的形式

要是用json的jar包 要用到JSONObject JSONArray

在java代码中写上

JSONObject obj=JSONObject.fromObject(stock);

String str=obj.toString();

JSONArray arr=JSONArray.fromObject(stocks);

String strs=arr.toString();

把json字符串变成javascript对象(或者是数组)

用到prototype.js的evalJSON()

用法是导入<script type="text/javascript" src="prototype.js">

写一个例子:把服务器发过来的字符串转变成对象了之后,再在页面上做局部的更新

<script type="text/javascript" src="my.js"></script> //用到了ajax对象

<script type="text/javascript" src="prototype.js"></script> //用到json的转换

<script type="text/javascript" >

function showStock(){

setInterval(quoto,5000);

}

function quoto(){

var xhr=getXhr(); //获得ajax对象

if(readyState==4&&status==200){

var txt=xhr.responseText;

var stocks=txt.evalJSON();

var strs='';

if(int i=0;i<stocks.length;i++){

var s=stocks[i];

strs='<tr><td>'+s.code

+'</td><td>'+s.name

+'</td><td>'+s.price+'</td></tr>'

}

${'id'}.innerHTML=strs;

}

xhr.send(null);

}

</script>