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 相关文章推荐
js获取元素的标签名实现方法
Oct 08 Javascript
AngularJS自定义控件实例详解
Dec 13 Javascript
JS实现JSON.stringify的实例代码讲解
Feb 07 Javascript
JavaScript简介_动力节点Java学院整理
Jun 26 Javascript
JS实现字符串翻转的方法分析
Aug 31 Javascript
使用vue根据状态添加列表数据和删除列表数据的实例
Sep 29 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
Nov 21 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
Mar 07 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
Apr 26 Javascript
新手入门带你学习JavaScript引擎运行原理
Jun 24 Javascript
JavaScript和TypeScript中的void的具体使用
Sep 12 Javascript
Node使用Selenium进行前端自动化操作的代码实现
Oct 10 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/05/05 PHP
PHP函数addslashes和mysql_real_escape_string的区别
2014/04/22 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
2010/05/07 Javascript
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
禁用JavaScript控制台调试的方法
2014/03/07 Javascript
jquery form 隐藏的input 选择
2014/04/29 Javascript
jquery实现带渐变淡入淡出并向右依次展开的多级菜单效果实例
2015/08/22 Javascript
浅谈JavaScript中的string拥有方法的原因
2015/08/28 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
Angular17之Angular自定义指令详解
2018/01/21 Javascript
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
使用vue cli4.x搭建vue项目的过程详解
2020/05/08 Javascript
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
Python实现多线程HTTP下载器示例
2017/02/11 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
python实现视频分帧效果
2019/05/31 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
Django之模板层的实现代码
2019/09/09 Python
营销人才自我鉴定范文
2013/12/25 职场文书
建筑安全员岗位职责
2014/03/13 职场文书
团员年度个人总结
2015/02/26 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
2019公司管理制度
2019/04/19 职场文书
学生早退检讨书(范文)
2019/08/19 职场文书
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS