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 相关文章推荐
在网页中控制wmplayer播放器
Jul 01 Javascript
ExtJS 入门
Oct 29 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
Dec 28 Javascript
jquery实现Li滚动时滚动条自动添加样式的方法
Aug 10 Javascript
利用JS实现数字增长
Jul 28 Javascript
BootStrap入门教程(一)之可视化布局
Sep 19 Javascript
JS取数字小数点后两位或n位的简单方法
Oct 24 Javascript
vue中各组件之间传递数据的方法示例
Jul 27 Javascript
react-native中ListView组件点击跳转的方法示例
Sep 30 Javascript
详解vue-router导航守卫
Jan 19 Javascript
jQuery实现的上拉刷新功能组件示例
May 01 jQuery
24个ES6方法解决JS实际开发问题(小结)
May 31 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
DC漫画《蝙蝠侠和猫女》图透 猫女怀孕老爷当爹
2020/04/09 欧美动漫
PHP中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
基于jQuery的简单的列表导航菜单
2011/03/02 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
2013/04/02 Javascript
JS原型、原型链深入理解
2016/02/27 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
2017/08/04 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
原生js实现移动小球(碰撞检测)
2020/12/17 Javascript
[43:24]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS Liquid
2018/03/30 DOTA
[10:18]2018DOTA2国际邀请赛寻真——找回自信的TNCPredator
2018/08/13 DOTA
Python生成8位随机字符串的方法分析
2017/12/05 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
Python爬取数据并写入MySQL数据库的实例
2018/06/21 Python
python和pygame实现简单俄罗斯方块游戏
2021/02/19 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
python输入多行字符串的方法总结
2019/07/02 Python
python super的使用方法及实例详解
2019/09/25 Python
Django继承自带user表并重写的例子
2019/11/18 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
python sleep和wait对比总结
2021/02/03 Python
英国领先的瓷砖专家:Walls and Floors
2018/04/27 全球购物
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
俄罗斯茶和咖啡网上商店:Tea.ru
2021/01/26 全球购物
施华洛世奇新加坡官网:SWAROVSKI新加坡
2020/10/06 全球购物
上班玩手机检讨书
2014/02/17 职场文书
超市开学活动方案
2014/03/01 职场文书
安全生产标语
2014/06/06 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书