在项目中遇到了用ajax,把java后台拼接的
StringBuilder json字符串转换为JSON对象,现在根据网上的内容和自己的理解总结一下这方面的内容
json数据是一种经型的实时数据交互的数据存储方法,使用到最多的应该是ajax与json配合使用了,下面我来给大
家介绍jquery处理json数据方法。一、JSON的一些基础知识。JSON中对象通过{}来标识,一个{}代表一个对象
json数据是一种经型的实时数据交互的数据存储方法,使用到最多的应该是ajax与json配合使用了,下面我来给大家介绍jquery处理json数据方法。
一、JSON的一些基础知识。
JSON中对象通过“{}”来标识,一个“{}”代表一个对象,如{“AreaId”:”123”},对象的值是键值对的形式(key:value)。
“[]”,标识数组,数组内部各个数据之间通过“,”分割,如[“AreaId”:”123”,”AreaId”:”345”]。
很多情况下是对象数组,那就是这样:
二、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对象。
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); } |
大家可以试试效果。