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 相关文章推荐
精心挑选的15个jQuery下拉菜单制作教程
Jun 15 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
Jul 14 Javascript
jquery得到font-size属性值实现代码
Sep 30 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
Aug 12 Javascript
js随机生成网页背景颜色的方法
Feb 26 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
Jul 06 Javascript
JavaScript 中对象的深拷贝
Dec 04 Javascript
angular实现spa单页面应用实例
Jul 10 Javascript
Vue响应式原理Observer、Dep、Watcher理解
Jun 06 Javascript
微信小程序全局变量改变监听的实现方法
Jul 15 Javascript
vue element和nuxt的使用技巧分享
Jan 14 Vue.js
js面向对象编程OOP及函数式编程FP区别
Jul 07 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入门
2006/10/09 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
PHP+MySQL插入操作实例
2015/01/21 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
2010/03/07 Javascript
jquery实现图片滚动效果的简单实例
2013/11/23 Javascript
jQuery中last()方法用法实例
2015/01/06 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
2016/06/06 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
微信小程序 引用其他js文件实现代码
2017/02/22 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
python实现马耳可夫链算法实例分析
2015/05/20 Python
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
OpenCV 轮廓检测的实现方法
2019/07/03 Python
python中append实例用法总结
2019/07/30 Python
python虚拟环境完美部署教程
2019/08/06 Python
wxPython实现绘图小例子
2019/11/19 Python
Python逐行读取文件内容的方法总结
2020/02/14 Python
python实现用户名密码校验
2020/03/18 Python
python3实现将json对象存入Redis以及数据的导入导出
2020/07/16 Python
Django视图类型总结
2021/02/17 Python
HTML5本地存储之IndexedDB
2017/06/16 HTML / CSS
阿里巴巴国际站:Alibaba.com
2016/07/21 全球购物
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
Linden Leaves官网:新西兰纯净护肤品
2020/12/20 全球购物
毕业生造价工程师求职信
2013/10/17 职场文书
便利店投资创业计划书
2014/02/08 职场文书
中队活动总结
2014/08/27 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
居委会工作总结2015
2015/05/18 职场文书
2016年六一儿童节开幕词
2016/03/04 职场文书
Python加密技术之RSA加密解密的实现
2022/04/08 Python