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 相关文章推荐
filemanage功能中用到的common.js
Apr 08 Javascript
javascript得到XML某节点的子节点个数的脚本
Oct 11 Javascript
网页前台通过js非法字符过滤代码(骂人的话等等)
May 26 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
Oct 18 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
May 05 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
May 02 Javascript
ng-alain表单使用方式详解
Jul 10 Javascript
ES10 特性的完整指南小结
Mar 04 Javascript
Node.js Event Loop各阶段讲解
Mar 08 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
Apr 08 Javascript
JS实现简单省市二级联动
Nov 27 Javascript
js中复选框的取值及赋值示例详解
Oct 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
虹吸式咖啡壶操作
2021/03/03 冲泡冲煮
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
2011/12/14 PHP
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
File, FileReader 和 Ajax 文件上传实例分析(php)
2011/04/27 Javascript
为jquery的ajaxfileupload增加附加参数的方法
2014/03/04 Javascript
在Google 地图上实现做的标记相连接
2015/01/05 Javascript
js创建对象的方法汇总
2016/01/07 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
2016/05/12 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
详解nodejs微信公众号开发——3.封装消息响应模块
2017/04/10 NodeJs
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
VSCode launch.json配置详细教程
2020/06/18 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
搭建Python的Django框架环境并建立和运行第一个App的教程
2016/07/02 Python
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
numpy.std() 计算矩阵标准差的方法
2018/07/11 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
python 字符串格式化的示例
2020/09/21 Python
聪明的粉丝购买门票的地方:TickPick
2018/03/09 全球购物
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
what is the difference between ext2 and ext3
2013/11/03 面试题
机修工岗位职责
2013/11/24 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
保密承诺书范文
2014/03/27 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
租车协议书
2015/01/27 职场文书
会议开幕词
2015/01/28 职场文书
党支部书记岗位职责
2015/02/15 职场文书
2015年收银工作总结范文
2015/04/01 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书
组织委员竞选稿
2015/11/21 职场文书
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL