JQuery处理json与ajax返回JSON实例代码


Posted in Javascript onJanuary 03, 2014

一、JSON的一些基础知识。

JSON中对象通过"{}"来标识,一个"{}"代表一个对象,如{"AreaId":"123"},对象的值是键值对的形式(key:value)。

 "[]",标识数组,数组内部各个数据之间通过","分割,如["AreaId":"123","AreaId":"345"]。

很多情况下是对象数组,那就是这样:

[{"AreaId":"123"},{"AreaId":"345"}]

 其实数组也是一个对象,上面的格式也可以写成这样:

{"Area":[{"AreaId":"123"},{"AreaId":"345"}]}

这表示一个Area对象,他有两个子数据,每个子数据也是一个对象,每个子对象都是AreaId。

 JSON中字符串和字符的定义格式和一般的类C语言定义是类似的,双引号定义字符串,单引号定义字符。

JSON的键(Key)用双引号括起来,比如上面的"Area"和"AreaId",都是用双引号括起来的,在一些语言中构造JSON字符串的时候,可以使用转义字符转义双引号。

 二、javascript操作JSON字符

1、先要区分JSON字符串和JSON对象

JSON字符串:

Var strJSON = "{"Area":[{"AreaId":"123"},{"AreaId":"345"}]}",

其实也可以写成这样:

Var strJSON = ‘{"Area":[{"AreaId":"123"},{"AreaId":"345"}]}',

这表示一个JSON字符串,由于在Js中单引号和双引号都可以表示一个字符串,所以上面第一个使用双引号和第二个使用单引号的都表示一个JSON字符串。

下面看看JSON对象

Var JSON = {"Area":[{"AreaId":"123"},{"AreaId":"345"}]},

看到了吧,JSON对象最外面是没有单引号或者双引号的,这就表示一个JSON对象。

在服务器断的脚本:

<?php
$data['id'] = 1;
$dat['name'] = "mary";
$da['red']= array_merge($data,$dat);
$data1['id'] = 2;
$dat1['name'] = "燕子";
$da['blue']= array_merge($data1,$dat1);
print_r($da);///打印出来是一个二维数组(如下)
/*
Array
(
    [red] => Array
        (
            [id] => 1
            [name] => mary
        )
    [blue] => Array
        (
            [id] => 2
            [name] => 燕子
        )
)
*/
echo json_encode($da);//输出的是一个转化成json格式的字符串,可以直接在js中用(如下)
/*
{"red":{"id":1,"name":"mary"},"blue":{"id":2,"name":"u71d5u5b50"}}
*/
?>

jquery脚本:

返回到js后的处理:
第一种要用到varl转化的:是字符串的时候就要用eval转化成jquery对象(如下)

var arr = '{"red":{"id":1,"name":"mary"},"blue":{"id":2,"name":"u71d5u5b50"}}';//u71d5u5b50这个是php中自动转换的
var dataObj = eval("("+arr+")");//这里要加上加好括号和双引号的原因我也不知道,就当是json语法,只能死记硬背了
  $.each(dataObj,function(idx,item){   
   //输出  
   alert(item.id+"哈哈"+item.name);   
})

第二种:不需要转化的:

var arr = {"red":{"id":1,"name":"mary"},"blue":{"id":2,"name":"u71d5u5b50"}};
  $.each(arr,function(idx,item){     
   //输出
   alert(item.id+"哈哈"+item.name);
})

循环也有两种方法:
//方法一:

$.each(arr,function(idx,item){     
   //输出
   alert(item.id+"哈哈"+item.name);
})

//方法二:

for(var key in arr){
  alert(key);
  alert(arr[key].status);
 }

大家可以试试效果。

ajax返回JSON时的处理方式

 1,使用普通的aspx页面来处理
       本人觉得这种方式处理起来是最简单的了,看下面的代码吧

$.ajax({ 
           type: "post", 
                                        url: "Default.aspx", 
                                        dataType: "json", 
                                        success: function (data) { 
                                                $("input#showTime").val(data[0].demoData); 
                                        }, 
                                        error: function (XMLHttpRequest, textStatus, errorThrown) { 
                                                alert(errorThrown); 
                                        } 
                                });
 

         这里是后台传递数据的代码
 

Response.Clear(); 
                        Response.Write("[{"demoData":"This Is The JSON Data"}]"); 
                        Response.Flush(); 
                        Response.End();
 

这种处理的方式将传递过来的数据直接解析为json数据,也就是说这里的前台js代码可能直接把这些数据解析成json对象数据,而并非字符串数据,如data[0].demoData,这里就直接使用了这个json对象数据

Javascript 相关文章推荐
xtree.js 代码
Mar 13 Javascript
纯JavaScript实现的完美渐变弹出层效果代码
Apr 02 Javascript
jQuery创建自己的插件(自定义插件)的方法
Jun 10 Javascript
javascript中with()方法的语法格式及使用
Aug 04 Javascript
异步JS框架的作用以及实现方法
Oct 29 Javascript
JS获取鼠标坐标位置实例分析
Jan 20 Javascript
JavaScript程序中的流程控制语句用法总结
May 23 Javascript
js改变html的原有内容实现方法
Oct 05 Javascript
angular实现图片懒加载实例代码
Jun 08 Javascript
webpack组织模块打包Library的原理及实现
Mar 10 Javascript
jQuery位置选择器用法实例分析
Jun 28 jQuery
js对象属性名驼峰式转下划线的实例代码
Sep 17 Javascript
jquery.post用法示例代码
Jan 03 #Javascript
简单的代码实现jquery定时器
Jan 03 #Javascript
jquery将一个表单序列化为一个对象的方法
Jan 03 #Javascript
jQuery的DOM操作之删除节点示例
Jan 03 #Javascript
JQuery中dataGrid设置行的高度示例代码
Jan 03 #Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
Jan 03 #Javascript
js传中文参数controller里获取参数乱码问题解决方法
Jan 03 #Javascript
You might like
PHP实现网上点歌(二)
2006/10/09 PHP
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
浅析php工厂模式
2014/11/25 PHP
一个完整的PHP类包含的七种语法说明
2015/06/04 PHP
使用PHPCMS搭建wap手机网站
2015/09/20 PHP
YII Framework框架教程之安全方案详解
2016/03/14 PHP
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
jQuery实现的简单百分比进度条效果示例
2016/08/01 Javascript
JS快速实现移动端拼图游戏
2016/09/05 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
Vue触发式全局组件构建的方法
2018/11/28 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
jQuery实现日历效果
2020/09/11 jQuery
vue实现lodop打印功能的示例
2020/11/11 Javascript
简单谈谈python中的语句和语法
2017/08/10 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
简单了解Python字典copy与赋值的区别
2020/09/16 Python
英国蛋糕装饰用品一站式商店:Craft Company
2019/03/18 全球购物
社区中秋节活动方案
2014/01/29 职场文书
教师党员一句话承诺
2014/03/28 职场文书
日语专业求职信
2014/07/04 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
幼儿园庆六一主持词
2015/06/30 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android