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 相关文章推荐
Dom在ajax技术中的作用说明
Oct 25 Javascript
使用jQuery管理选择结果
Jan 20 Javascript
JS实现队列与堆栈的方法
Apr 21 Javascript
json格式的javascript对象用法分析
Jul 04 Javascript
Vue 2.X的状态管理vuex记录详解
Mar 23 Javascript
详解Node项目部署到云服务器上
Jul 12 Javascript
详解ES6 系列之异步处理实战
Oct 26 Javascript
vue使用Google地图的实现示例代码
Dec 19 Javascript
详解element-ui中form验证杂记
Mar 04 Javascript
jQuery子选择器与可见性选择器实例分析
Jun 28 jQuery
详解element-ui中el-select的默认选择项问题
Aug 02 Javascript
element-ui tree结构实现增删改自定义功能代码
Aug 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
PHP实现一个简单url路由功能实例
2016/11/05 PHP
Jquery 一次处理多个ajax请求的代码
2011/09/02 Javascript
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
在Linux上用forever实现Node.js项目自启动
2014/07/09 Javascript
jquery处理json对象
2014/11/03 Javascript
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
浅谈JS运算符&amp;&amp;和|| 及其优先级
2016/08/10 Javascript
js HTML5多图片上传及预览实例解析(不含前端的文件分割)
2016/08/26 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
用Python的urllib库提交WEB表单
2009/02/24 Python
python获取远程图片大小和尺寸的方法
2015/03/26 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
详解Python用户登录接口的方法
2019/04/17 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
如何基于python测量代码运行时间
2019/12/25 Python
Python中return函数返回值实例用法
2020/11/19 Python
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
德国帽子专家:Hutshopping
2019/11/03 全球购物
财务会计专业求职信范文
2013/12/31 职场文书
最新奶茶店创业计划书
2014/01/25 职场文书
旺仔牛奶广告词
2014/03/20 职场文书
家居装修公司创业计划书范文
2014/03/20 职场文书
幼儿园保育员岗位职责
2014/04/13 职场文书
公司授权委托书样本
2014/09/15 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
美国旅游签证工作证明
2014/10/14 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
体育教师教学随笔
2015/08/15 职场文书
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android
pycharm无法安装cv2模块问题
2022/05/20 Python
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server
MyBatis在注解上使用动态SQL方式(@select使用if)
2022/07/07 Java/Android