`
adoph
  • 浏览: 5383 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Json基础及Json返回格式解析

 
阅读更多
Json

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对象
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对象。

对json的处理
jquery脚本:
返回到js后的处理:
第一种要用到varl转化的:是字符串的时候就要用eval转化成jquery对象(如下)
var arr = '{"red":{"id":1,"name":"mary"},"blue":{"id":2,"name":"u71d5u5b50"}}';

var dataObj = eval("("+arr+")");//这里要加上加好括号和双引号的原因我也不知道,就当是json语法,只能死记硬背了

  $.each(dataObj,function(idx,item){  
   //输出 
   alert(item.id+"哈哈"+item.name);  
})

第二种:不需要转化的:本身是Json对象
var arr = {"red":{"id":1,"name":"mary"},"blue":{"id":2,"name":"u71d5u5b50"}};
//Jquery获取
  $.each(arr,function(idx,item){    
   //输出
   alert(item.id+"哈哈"+item.name);
})
也可以用普通for
for(var key in arr){
  alert(key);
  alert(arr[key].status);
}



注意:

jquery异步获取的数据类型——json对象和字符串为依据,分别介绍两种方式获取到的结果处理方式。

1.对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次。这种方式也适合以普通javascipt方式获取json对象,以下举例说明:

var dataObj=eval("("+data+")");//转换为json对象
alert(dataObj.root.length);//输出root的子对象数量
$.each(dataObj.root,fucntion(idx,item){
if(idx==0){
return true;
}

//输出每个root子对象的名称和值
alert("name:"+item.name+",value:"+item.value);
})

注:对于一般的js生成json对象,只需要将$.each()方法替换为for语句即可,其他不变。

2.对于服务器返回的JSON字符串,如果jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为例说明数据处理方法:

$.getJSON("http://gaoyusi.blog.163.com/",{param:"gaoyusi"},function(data){
//此处返回的data已经是json对象
//以下其他操作同第一种情况
$.each(data.root,function(idx,item){
if(idx==0){
return true;//同countinue,返回false同break
}

alert("name:"+item.name+",value:"+item.value);

});
});

这里特别需要注意的是方式1中的eval()方法是动态执行其中字符串(可能是js脚本)的,这样很容易会造成系统的安全问题。所以可以采用一些规避了eval()的第三方客户端脚本库,比如JSON in JavaScript就提供了一个不超过3k的脚本库。



分享到:
评论

相关推荐

    谷歌浏览器插件-json格式解析

    标题中的“谷歌浏览器插件-json格式解析”指出我们要讨论的是一个专为谷歌浏览器设计的插件,其主要功能是解析JSON(JavaScript Object Notation)格式的数据。JSON是一种轻量级的数据交换格式,常用于Web服务与...

    delphi_json解析格式化源码

    2. JSON格式化器:另一个函数或类,接受`TJSONObject`或`TJSONArray`实例,返回格式化后的JSON字符串。 3. 错误处理:处理解析过程中遇到的无效JSON格式,可能通过异常或者返回错误代码来报告问题。 4. 示例用法:...

    JSON格式化工具-JSON格式化美化工具

    综上所述,JSON格式化工具是开发者和数据分析师的重要辅助工具,它们简化了JSON数据的查看和编辑过程,提高了工作效率。在处理大量JSON数据时,这样的工具显得尤为实用。通过浏览器实现的JSON格式化工具更是以其便捷...

    PB9生成和解析JSON

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间的数据传输。它以易于人阅读和编写的方式,同时也易于机器解析和生成。PB9(PowerBuilder 9)是一款强大的Windows应用...

    json解析格式化工具

    总结来说,"JsonView"作为一款强大的JSON解析和格式化工具,能够极大地提升开发人员处理JSON数据的效率,无论是对原始JSON字符串的格式化,还是以树形结构展示数据,都为理解和分析JSON数据带来了便利。在日常工作中...

    C实现对JSON的封装,对json格式解析,封装等.

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务与客户端之间的数据传输。在C语言环境中,处理JSON数据通常需要通过库来实现,其中一个常用的C库就是`cJSON`。本篇文章将详细介绍...

    JSON基础教程.

    ### JSON基础教程详解 #### 一、JSON简介与优势 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。相较于XML,JSON的数据格式更为简洁,这使得它在...

    oracle格式化查看json数据

    JSON_VALUE用于获取单个JSON路径的标量值,而JSON_QUERY则可以返回一个JSON对象或数组。它们都可以接受一个路径表达式,根据该路径从JSON文档中提取所需信息。 3. JSON_TABLE: JSON_TABLE是将JSON数据转换为关系...

    json离线格式化工具

    "json离线格式化工具"是一款专为处理JSON数据设计的实用工具,它允许用户在没有网络连接的情况下对JSON数据进行美化和解析。这个工具特别适合开发人员在离线环境中工作,避免了网络延迟或不稳定对工作的影响。它提供...

    JSON格式文件返回JAR包

    在描述中提到的"JSON格式文件返回JAR包",指的是一个服务端程序可能通过处理某些业务逻辑后,将结果以JSON格式编码,并将其封装到一个JAR(Java Archive)文件中返回给客户端。JAR文件是Java平台特有的打包格式,它...

    JSON返回值格式的WebService样例

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web服务接口的数据传输,因其简洁、易读且易于解析的特点而广受欢迎。在本示例中,“JSON返回值格式的WebService样例”旨在展示如何构建一个...

    JsonSQL:用SQL语句解析JSON文件

    在大数据处理和Web应用中,JSON(JavaScript Object Notation)格式已经成为数据交换的常见格式。然而,对于习惯使用SQL查询关系型数据库的人来说,处理JSON数据可能会觉得不太直观。JsonSQL项目应运而生,它允许...

    java 解析 json文件 java 解析 json文件

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁和易于阅读及编写的特点,被广泛应用于网络数据传输。本文将详细介绍如何在Java中解析JSON文件。 一、JSON解析库 1. Jackson:Jackson是...

    JsonView---json格式化客户端

    例如,开发者可以将API返回的JSON响应直接复制到JsonView中,然后进行格式化和分析,找出问题所在。此外,对于处理复杂的JSON配置文件或者数据文件,JsonView也能提供很大的帮助。 总之,JsonView是开发者在处理...

    C#后台返回json类型数据

    其中一种常见的数据格式就是JSON(JavaScript Object Notation),它是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在.NET框架下,可以通过多种方式实现数据的序列化与反序列化,从而...

    JsonView JSON解析分析器

    JsonView是一款专门针对JSON数据的解析和分析工具,极大地便利了开发者在开发和调试过程中对JSON数据的操作。 JsonView主要提供了以下功能: 1. **JSON字符串解析**:JsonView能够将接收到的JSON字符串转换成...

    Json格式化工具

    作为一个强大的JSON查看器,它可以帮助开发者轻松查看和理解返回的JSON数据结构。通过格式化JSON字符串,将原本紧凑的代码转换成易于阅读的格式,使得数据的层次关系一目了然。 在使用HiJson时,用户可以将接收到的...

    Linux JSON 命令总结.zip_json linux_shell解析json

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本文将深入探讨如何在Linux系统下使用Shell命令来解析JSON数据。 首先,我们介绍几个常用的Linux...

    360浏览器谷歌浏览器json插件,自动解析json格式

    360浏览器谷歌浏览器json插件,自动解析json

    C++组织及解析JSON格式

    解析器会返回一个解析结果,从中我们可以获取到解析出的JSON对象。例如,用RapidJSON的API,我们可以这样做: ```cpp #include "rapidjson/document.h" std::string jsonString = "{\"name\":\"John\", \"age\":30...

Global site tag (gtag.js) - Google Analytics