json数据是一种经型的实时数据交互的数据存储方法,使用到最多的应该是ajax与json配合使用了,下面我来给大家介绍jquery处理json数据方法。

一、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对象数据

最新资讯
腾讯:WeCom是企业微信海外版 和WeChat是不同产品

腾讯:WeCom是企业微信

腾讯方面对在美运营WeCom产品向新浪科技回应表示,WeCom
令人困惑的阿里“新制造”

令人困惑的阿里“新制

阿里发布了开发三年的新制造项目犀牛智造,但它究竟是什
这个由女性数学家创建的理论,重塑了物理学今天的面貌

这个由女性数学家创建

在女性被认为智力不如男性的时代,诺特赢得了男同事的钦
喝咖啡能减少癌症死亡?研究发现,咖啡与结肠癌患者生存期改善有关

喝咖啡能减少癌症死亡

研究结果显示,在晚期或转移性结直肠癌患者中,咖啡饮用量
你睡得好吗?新研究发现,长期睡眠不佳,埋下阿尔茨海默病的隐患

你睡得好吗?新研究发现

越来越多的科学研究证明,睡眠不足给身心健康都会带来深
感觉到冷别硬抗,小心骨骼受损!

感觉到冷别硬抗,小心骨

通过流行病学分析、实验以及先进的宏基因组和代谢组学
最新文章
详解Vue的ref特性的使用

详解Vue的ref特性的使

这篇文章主要介绍了详解Vue的ref特性的使用,文中通过
vue学习笔记之slot插槽基本用法实例分析

vue学习笔记之slot插

这篇文章主要介绍了vue学习笔记之slot插槽基本用法,结
vue跳转方式(打开新页面)及传参操作示例

vue跳转方式(打开新页

这篇文章主要介绍了vue跳转方式(打开新页面)及传参操作,
vue学习笔记之过滤器的基本使用方法实例分析

vue学习笔记之过滤器

这篇文章主要介绍了vue学习笔记之过滤器的基本使用方
js获取本日、本周、本月的时间代码

js获取本日、本周、本

本篇文章给大家分享的内容是利用js如何获取本日、本周
node crawler如何添加promise支持

node crawler如何添加

这篇文章主要介绍了node crawler如何添加promise支持,