在解析之前,我们必须弄清楚几个概念:数组,关联数组以及json之间有哪些区别和联系点?
一.概念介绍
1.数组
语法:
ECMAScript v3规定了数组直接量的语法,JavaScript 1.2和JScript 3.0实现了它。可以把—个用逗号分隔的表达式列表放在方括号中,创建并初始化—个数组。这些表达式的值将成为数组元素。例如:
var a = [1, true, 'abc'];
具体操作查看API.
ps:必须方括号隔开。
2.关联数组
1.语法:
1.var myhash= {”key1″:”val1″, “key2″:”val2″ };//obj
2.var myhash= {key1:”val1″, key2:”val2″ };//obj-也可以
ps:跟json格式几乎相同,但是json格式要求更加严格(里面的键值对必须使用双引号),但json只能作为一种格式标准,如果要对其进行操作必须转换成关联数组对象(obj)。
2.简单操作
(摘自-http://www.blogjava.net/f6k66ve/archive/2012/12/20/393244.html):
1.向Hash关联数组添加键值
// 添加一个新键 newkey ,键值为 newval
myhash[”newkey”] = “newval”;
2.删除Hash关联数组已有键值
// 删除一个键 newkey ,同时,该键值对应的 newval 也就消失了
delete myhash[”newkey”];
3.遍历Hash关联数组
// 遍历整个hash 数组
for (key in myhash) {
val = myhash[key];
}
4.获得值
方式1.myhash.key1
方式2.myhash.key2
3.json
格式要求:
{”key1″:”val1″, “key2″:”val2″ };//严格按照此格式,操作可依照关联数组的操作
二.前后台交互中几个关键点
三.具体的实例代码
- <body>
- <input type="button" value="send ajax json" onclick="sendAjaxByjson();"/>
- <input type="button" value="send ajax array" onclick="sendAjaxByarray();"/>
- </body>
- <script type="text/javascript">
- function sendAjaxByjson(){
- $.post("json",{},function(data){
- var obj=data;
- alert(typeof obj);//string
- //var a=eval(obj);不解,不注释则会报错..
- var strToobj=$.parseJSON(obj);
- alert(strToobj.name);
- alert(typeof strToobj)//obj
- var obja={'name':'techbirds','age':'23','sex':'male'};
- alert(typeof obja);//obj
- alert(obja['name']+":"+obja.age);
- delete obja['name'];
- });
- }
- function sendAjaxByarray(){
- $.post("array",{},function(data){
- var str=data;
- alert(typeof str);//string
- alert(typeof eval(str));//object
- var obja=[1,2,3,4,5];
- alert(typeof obja);//object
- });
- }
- </script>
- @Override
- protected void service(HttpServletRequest req, HttpServletResponse reps)
- throws ServletException, IOException {
- Map<String, Object> jsonMap=new HashMap<String, Object>();
- jsonMap.put("name", "techbirds");
- jsonMap.put("age", 23);
- jsonMap.put("sex", "male");
- reps.getWriter().print(JSONObject.fromObject(jsonMap).toString());
- reps.getWriter().flush();
- reps.getWriter().close();
- }
- @Override
- protected void service(HttpServletRequest req, HttpServletResponse reps)
- throws ServletException, IOException {
- String array="[1,2,3,4,5,6]";
- reps.getWriter().print(array);
- reps.getWriter().flush();
- reps.getWriter().close();
- }