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 对象的解释
Nov 24 Javascript
jquery 模拟雅虎首页的点击对话框效果
Apr 11 Javascript
清空上传控件input file的值
Jul 03 Javascript
基于jquery的一个OutlookBar类,动态创建导航条
Nov 19 Javascript
js创建数据共享接口——简化框架之间相互传值
Oct 23 Javascript
基于jquery的无限级联下拉框js插件
Oct 29 Javascript
Javascript脚本实现静态网页加密实例代码
Nov 05 Javascript
JS求平均值的小例子
Nov 29 Javascript
判断一个对象是否为jquery对象的方法
Mar 12 Javascript
js阻止事件追加的具体实现
Oct 15 Javascript
JavaScript无缝滚动效果的实例代码
Mar 27 Javascript
关于vue单文件中引用路径的处理方法
Jan 08 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
人族 Terran 基本策略
2020/03/14 星际争霸
常用的php对象类型判断
2008/08/27 PHP
提高PHP编程效率 引入缓存机制提升性能
2010/02/15 PHP
php中使用base HTTP验证的方法
2015/04/20 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
javascript 一些用法小结
2009/09/11 Javascript
JS实现可改变列宽的table实例
2013/07/02 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
javascript简单实现表格行间隔显示颜色并高亮显示
2013/11/29 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
2015/10/12 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
JS简单随机数生成方法
2016/09/05 Javascript
基于Vue2.0的分页组件
2017/03/16 Javascript
Vuex提升学习篇
2018/01/11 Javascript
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
Vue入门之animate过渡动画效果
2018/04/08 Javascript
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
2019/08/17 Javascript
Python访问纯真IP数据库脚本分享
2015/06/29 Python
使用Flask集成bootstrap的方法
2018/07/24 Python
python urllib爬虫模块使用解析
2019/09/05 Python
Python实现队列的方法示例小结【数组,链表】
2020/02/22 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
在线课程:Skillshare
2019/04/02 全球购物
服装设计专业自荐书范文
2013/12/30 职场文书
五型班组建设方案
2014/02/10 职场文书
幼儿园儿童节主持词
2014/03/21 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
违反工作规定检讨书范文
2014/12/14 职场文书
解决jupyter notebook启动后没有token的坑
2021/04/24 Python