给学校的一个部门做新闻网站,用到ajax从servlet取jsonData格式的数据显示在首页。粗略研究了下这个jsonData。推荐需要了解的童鞋去官网http://www.json.org/json-zh.html瞧瞧。那里讲的很详细。
jsondata有两种格式,表示对象的名值对和表示数组的"["、"]"。
对象都是用"{"、"}"两个大括号括起来。里面存放名值对。{'name':'value'}。多个对象用逗号隔开。很简单。
用数组装对象的时候,不仅需要给出数组下标值,还得给出名值对中的名来。例如var data1 = [{'name1':'value1'},{'name2':'value2'}]。访问的时候,data[0].name1的值才是value1。
直接用数组装单独的基本类型——字符、字符串、数字的时候,只需给出下标值即可。例如字符串
var jData2=["data1","data2","data3"];
var t3 = jData2[0];
var t4 = jData2[1];
t3、t4值就是data1跟data2。
向新闻首页传递首页所需的数据的时候,就可以利用jsonData格式。利用servlet构建一个算比较长的StringBuffer。字符串内容为
[{'newsType1':[
{'new1':{'id':'001','title':'hello,jsondata1','cont':'构建这个字符串好麻烦、、、'}},
{'new2':{'id':'002','title':'hello,jsondata2','cont':'我还是想说,这个格式的数据真的很麻烦、、'}}
]},
{'newsType2':[]},
{'newsType3':{'news3':[003,'换做数组试试','数组只能直接存值,没法有名']},{'news4':[004,'跟上一个新闻是一样的格式','这样用的话,需要记住数组下标与值对应的关系,否则,容易出错']}},
{'newsType4':{}}]
访问的时候 var resultData = 上面数组;
var newType1 = result[0].newsType1;
newType1.new1.id的值就是001
var newType3 = result[2].newsType3;
newType3.new3[0]的值就是003。
详细情况请动手。光看是没法提高的。