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 20 Javascript
jquery下将选择的checkbox的id组成字符串的方法
Nov 28 Javascript
javascript真的不难-回顾一下基础知识
Jan 15 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
Dec 14 Javascript
用Jquery实现滚动新闻
Feb 12 Javascript
jquery easyui使用心得
Jul 07 Javascript
jQuery中bind()方法用法实例
Jan 19 Javascript
JavaScript每天必学之事件
Sep 18 Javascript
详解微信小程序开发之城市选择器 城市切换
Jan 17 Javascript
Vue slot用法(小结)
Oct 22 Javascript
vue-cli 目录结构详细讲解总结
Jan 15 Javascript
react如何快速设置文件路径别名
Apr 28 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
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
2011/03/31 PHP
php处理restful请求的路由类分享
2014/02/27 PHP
PHP性能分析工具XHProf安装使用教程
2015/05/13 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
PHP获取客户端及服务器端IP的封装类
2016/07/21 PHP
php解决crontab定时任务不能写入文件问题的方法分析
2019/09/16 PHP
鼠标移动到一张图片时变为另一张图片
2006/12/05 Javascript
setTimeout和setInterval的区别你真的了解吗?
2011/03/31 Javascript
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
2011/10/29 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
vue 通过下拉框组件学习vue中的父子通讯
2017/12/19 Javascript
通过实践编写优雅的JavaScript代码
2019/05/30 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
js实现扫雷源代码
2020/11/27 Javascript
vuex的使用步骤
2021/01/06 Vue.js
Python实现的堆排序算法原理与用法实例分析
2017/11/22 Python
python分析作业提交情况
2017/11/22 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
python能开发游戏吗
2020/06/11 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
最新销售员个人自荐信
2013/09/21 职场文书
研究生自我鉴定范文
2013/10/30 职场文书
优秀应届生推荐信
2013/11/09 职场文书
旷课检讨书2000字
2014/01/14 职场文书
科技节口号
2014/06/19 职场文书
男方家长婚礼致辞
2015/07/27 职场文书
nginx内存池源码解析
2021/11/20 Servers
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python
js作用域及作用域链工作引擎
2022/07/07 Javascript