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事件委托技术实例分析
Feb 06 Javascript
详解JavaScript编程中的数组结构
Oct 24 Javascript
Node.JS利用PhantomJs抓取网页入门教程
May 19 Javascript
微信小程序的日期选择器的实例详解
Sep 29 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
May 23 Javascript
vue-cli配置环境变量的方法
Jul 09 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
Dec 30 Javascript
vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法
Nov 05 Javascript
JavaScript数组常用的增删改查与其他属性详解
Oct 13 Javascript
解决vue scoped html样式无效的问题
Oct 24 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
Nov 07 Javascript
微信小程序实现锚点跳转
Nov 23 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 fsockopen写的HTTP下载的类
2007/02/22 PHP
php循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
PHP多例模式介绍
2013/06/24 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
javascript数组的使用
2013/03/28 Javascript
js实现省市联动效果的简单实例
2014/02/10 Javascript
window.location的重写及判断location是否被重写
2014/09/04 Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
2014/09/23 Javascript
JavaScript 匿名函数和闭包介绍
2015/04/13 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
实时监控input框,实现输入框与下拉框联动的实例
2018/01/23 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
2020/07/28 Javascript
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
python连接MySQL数据库实例分析
2015/05/12 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
python验证身份证信息实例代码
2019/05/06 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
美国一家主打母婴用品的团购网站:zulily
2017/09/19 全球购物
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
应届大学生的推荐信
2013/11/20 职场文书
银行财务部实习生的自我鉴定
2013/11/27 职场文书
班会关于环保演讲稿
2013/12/29 职场文书
企业指导教师评语
2014/04/28 职场文书
我为党旗添光彩演讲稿
2014/09/10 职场文书
英语邀请函范文
2015/02/02 职场文书
golang elasticsearch Client的使用详解
2021/05/05 Golang
在 SQL 语句中处理 NULL 值的方法
2021/06/07 SQL Server