jquery处理json数据实例分析


Posted in Javascript onJune 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中按位“异或”运算符使用介绍
Mar 14 Javascript
超链接的禁用属性Disabled使用示例
Jul 31 Javascript
javascript实现简单的进度条
Jul 02 Javascript
jQuery对象的链式操作用法分析
May 10 Javascript
vue实现移动端图片裁剪上传功能
Aug 18 Javascript
简单实现js上传文件功能
Aug 21 Javascript
jQuery选择器之属性过滤选择器详解
Sep 28 jQuery
Vue利用canvas实现移动端手写板的方法
May 03 Javascript
微信小程序CSS3动画下拉菜单效果
Nov 04 Javascript
vue 移动端注入骨架屏的配置方法
Jun 25 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
Jan 22 Javascript
es6数组的flat(),flatMap()函数用法实例分析
Apr 18 Javascript
js 获取浏览器版本以此来调整CSS的样式
Jun 03 #Javascript
jQuery绑定事件不执行但alert后可以正常执行
Jun 03 #Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
Jun 03 #Javascript
jQuery多项选项卡的实现思路附样式及代码
Jun 03 #Javascript
jquery动态改变form属性提交表单
Jun 03 #Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
Jun 03 #Javascript
jQuery学习笔记之jQuery构建函数的7种方法
Jun 03 #Javascript
You might like
PHP 第二节 数据类型之转换
2012/04/28 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
toString()一个会自动调用的方法
2010/02/08 Javascript
jsPDF生成pdf后在网页展示实例
2014/01/16 Javascript
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
vue实现的网易云音乐在线播放和下载功能案例
2019/02/18 Javascript
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
JavaScript自定义超时API代码实例
2020/04/30 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
2020/07/20 Javascript
[01:14:05]《加油DOTA》第四期
2014/08/25 DOTA
Python strip lstrip rstrip使用方法
2008/09/06 Python
python生成指定尺寸缩略图的示例
2014/05/07 Python
python从入门到精通(DAY 3)
2015/12/20 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
2017/09/20 Python
Python将图片转换为字符画的方法
2020/06/16 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
Django models filter筛选条件详解
2020/03/16 Python
phpquery中文手册
2021/03/18 PHP
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
十佳中学生事迹材料
2014/06/02 职场文书
个人委托书
2014/07/31 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
毕业生党员个人总结
2015/02/14 职场文书
农业项目合作意向书
2015/05/08 职场文书