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 相关文章推荐
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
Jan 15 Javascript
在jquery中combobox多选的不兼容问题总结
Dec 24 Javascript
常规表格多表头查询示例
Feb 21 Javascript
关于javascript模块加载技术的一些思考
Nov 28 Javascript
JavaScript返回网页中超链接数量的方法
Apr 03 Javascript
JS中完美兼容各大浏览器的scrolltop方法
Apr 17 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
Jan 13 Javascript
angular2使用简单介绍
Mar 01 Javascript
jQuery实现复选框的全选和反选
Feb 02 Javascript
JavaScript文本特效实例小结【3个示例】
Dec 22 Javascript
JavaScript工具库MyTools详解
Jan 01 Javascript
JS+Canvas实现五子棋游戏
Aug 26 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数组中删除元素的实现代码
2012/06/22 PHP
初步介绍PHP扩展开发经验分享
2012/09/06 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
腾讯UED 漂亮的提示信息效果代码
2011/09/12 Javascript
深入分析jsonp协议原理
2015/09/26 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
Vue开发过程中遇到的疑惑知识点总结
2017/01/20 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
Angular5中提取公共组件之radio list的实例代码
2018/07/10 Javascript
微信小程序实现录音时的麦克风动画效果实例
2019/05/18 Javascript
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
javascript 设计模式之组合模式原理与应用详解
2020/04/08 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
2020/10/27 Javascript
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
Python2中的raw_input() 与 input()
2015/06/12 Python
python实现批量监控网站
2016/09/09 Python
用python记录运行pid,并在需要时kill掉它们的实例
2017/01/16 Python
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
Python中list循环遍历删除数据的正确方法
2019/09/02 Python
如何解决django-celery启动后迅速关闭
2019/10/16 Python
pygame实现五子棋游戏
2019/10/29 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
如何使用python切换hosts文件
2020/04/29 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
英国女装网上商店:I Saw It First
2018/10/18 全球购物
营销总经理的岗位职责
2013/12/15 职场文书
军训心得体会
2013/12/31 职场文书
交通事故被告代理词
2015/05/23 职场文书
电影地道战观后感
2015/06/04 职场文书
Python装饰器详细介绍
2022/03/25 Python
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server