`
xiaoxiong_it
  • 浏览: 130132 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ajax 对 Json 格式的解析

阅读更多

Json 的介绍:

JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。

 

按照最简单的形式,可以用下面这样的 JSON 表示名称/值对:

{ "firstName": "Brett" }

 

这样的键/值对也可以是多个:

{"name":"aaa","sex":"男","age":"20"}
从语法方面来看,这与名称/值对相比并没有很大的优势,但是在这种情况下 JSON 更容易使用,而且可读性更好。

 

值的数组

当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性。

如果使用 JSON,就只需将多个带花括号的记录分组在一起:

{ "people": [
  { "firstName": "Brett", "lastName":"McLaughlin", "email": "111111" },
  { "firstName": "Jason", "lastName":"Hunter", "email": "22222" },
  { "firstName": "Elliotte", "lastName":"Harold", "email": "33333" }
]}

 

可以使用相同的语法表示多个值(每个值包含多个记录):

{ "programmers": [
  { "firstName": "Brett", "lastName":"McLaughlin", "email": "3333" },
  { "firstName": "Jason", "lastName":"Hunter", "email": "1222" },
  { "firstName": "Elliotte", "lastName":"Harold", "email": "3333" }
 ],
"authors": [
  { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
  { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
  { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
 ],
"musicians": [
  { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
  { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
 ]
}

 

Json也可以这样写:

{ "listaccountsresponse" : { "count":1 ,"account" : [ {"id":5,"name":"xian1","accounttype":0,"domainid" :2,"domain":"Server","receivedbytes":649444,"sentbytes":175467975,"vmlimit":"20","vmtotal":2,"vmavailable" :"18","iplimit":"20","iptotal":1,"ipavailable":"19","volumelimit":"20","volumetotal":2,"volumeavailable" :"18","snapshotlimit":"20","snapshottotal":0,"snapshotavailable":"20","templatelimit":"20","templatetotal" :0,"templateavailable":"20","vmstopped":0,"vmrunning":2,"state":"enabled","user":[{"id":5,"username" :"xian1","firstname":"Eric","lastname":"Tang","email":"Wang-Ngai.Tang@pccw.com","created":"2012-03-22T09 :36:44+0800","state":"enabled","account":"xian1","accounttype":0,"domainid":2,"domain":"Server","timezone" :"Asia/Shanghai"}]} ] } }

 

ajax对Json格式数据的解析

1.对简单json格式的解析:

{ "firstName": "Brett" }

写道
$.ajax({
url:"这里是你要请求的地址",
data:{"id":id}, //以键/值对的形式
async : false,
dataType : "json",
success : function(data) {
alert("firstName = " + data.firstName);
}
});

 注:这里的data是你从后台穿过来的Json字符传串。

 

后台写法:

response.setCharacterEncoding("utf-8");
		response.setContentType("text/json;charset=UTF-8");
		PrintWriter out = null;
		String count = "{ "firstName": "Brett" }

;
		try {
			out = response.getWriter();
		} catch (Exception e) {
			e.printStackTrace();
		}
		out.print(count);
		out.flush();

 这样就能在前台页面弹出提示框:firstName = Brett。

 

2.多个键/值对和上面的情况一样

 

3.解析Json如下数组:

{

  { "firstName": "Brett", "lastName":"McLaughlin", "email": "111111" },
  { "firstName": "Jason", "lastName":"Hunter", "email": "22222" },
  { "firstName": "Elliotte", "lastName":"Harold", "email": "33333" }
}

$.ajax({
url:"这里是你要请求的地址",
data:{"id":id}, //以键/值对的形式
async : false,
dataType : "json",
success : function(data) {
for(int i = 0; i < data.length; i++) { //循环后台传过来的Json数组
     var datas = data[i];
     alert(datas.firstName);
     alert(datas.lastName);
     alert(datas.email);
}
}
});

 

4.解析如下Json数据

{ "programmers": [
  { "firstName": "Brett", "lastName":"McLaughlin", "email": "3333" },
  { "firstName": "Jason", "lastName":"Hunter", "email": "1222" },
  { "firstName": "Elliotte", "lastName":"Harold", "email": "3333" }
 ],
"authors": [
  { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
  { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
  { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
 ],
"musicians": [
  { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
  { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
 ]
}

 

$.ajax({
url:"这里是你要请求的地址",
data:{"id":id}, //以键/值对的形式
async : false,
dataType : "json",
success : function(data) {
var pro = data.programmers; // pro为programmers的一个数组
for(int i = 0; i < pro.length; i++) { //循环后台传过来的Json数组
     var datas = pro[i];
     alert(pro.firstName);
     alert(pro.lastName);
     alert(pro.email);
}
var aut = data.authors; // aut为authors的一个数组
for(int i = 0; i < aut.length; i++) { //循环后台传过来的Json数组
     var datas = aut[i];
     alert(aut.firstName);
     alert(aut.lastName);
     alert(aut.genre);
}
var mus = data.musicians; // aut为authors的一个数组
for(int i = 0; i < mus.length; i++) { //循环后台传过来的Json数组
     var datas = mus[i];
     alert(mus.firstName);
     alert(mus.lastName);
     alert(mus.instrument);
}

}
});

 

 5.

{ "listaccountsresponse" : { "count":1 ,"account" : [ {"id":5,"name":"xian1","accounttype":0,"domainid" :2,"domain":"Server","receivedbytes":649444,"sentbytes":175467975,"vmlimit":"20","vmtotal":2,"vmavailable" :"18","iplimit":"20","iptotal":1,"ipavailable":"19","volumelimit":"20","volumetotal":2,"volumeavailable" :"18","snapshotlimit":"20","snapshottotal":0,"snapshotavailable":"20","templatelimit":"20","templatetotal" :0,"templateavailable":"20","vmstopped":0,"vmrunning":2,"state":"enabled","user":[{"id":5,"username" :"xian1","firstname":"Eric","lastname":"Tang","email":"Wang-Ngai.Tang@pccw.com","created":"2012-03-22T09 :36:44+0800","state":"enabled","account":"xian1","accounttype":0,"domainid":2,"domain":"Server","timezone" :"Asia/Shanghai"}]} ] } }

 

 

 

 

$.ajax({
url:"这里是你要请求的地址",
data:{"id":id}, //以键/值对的形式
async : false,
dataType : "json",
success : function(data) {
var accounts = data.listaccountsresponse.account; //取到“account”中的数据
for(int i = 0; i < accounts.length; i++) { //循环后台传过来的Json数组
     var datas = accounts[i];
     alert(datas.id);
     alert(datas.name);
     alert(datas.accounttype);
     ..........
}
}
});

 

-----这里是自己写的一个后台传值----------------------------------------------------------------------------------------------------------

 

@RequestMapping(value="/applyVm/listApplyVmCount", method={RequestMethod.GET, RequestMethod.POST})
	public void listApplyVmCount(HttpServletRequest request, HttpServletResponse response) {
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/json;charset=UTF-8");
		PrintWriter out = null;
		String count = "";
		try {
			out = response.getWriter();
			Map<String, Integer> map = applyVmService.findApplyVmCount();
			Gson gson = new Gson();
			count = gson.toJson(map);
		} catch (Exception e) {
			e.printStackTrace();
		}
		out.print(count);
		out.flush();
	} 

 

 

 

分享到:
评论
2 楼 a30501139 2016-07-27  
for(int i = 0; i < pro.length; i++)

for循环里的int是不是要改为var,我用int就不行
1 楼 哈哈哥_Supper 2014-06-04  
有没有纯js实现解析啊,不用jqury

相关推荐

    jQuery_Ajax_Json全解析

    **jQuery、Ajax与JSON全解析** 在Web开发中,jQuery、Ajax和JSON是不可或缺的工具,它们共同构建了现代网页的动态交互体验。本解析将深入探讨这三个概念及其相互关系。 **jQuery:简化JavaScript操作** jQuery是...

    ajax+json实例

    在这个例子中,服务器端通过`JsonResult`返回JSON格式的用户信息,客户端通过AJAX请求获取这些信息并解析显示。 **五、总结** AJAX+JSON在.NET环境中的应用大大提高了Web应用程序的交互性和效率,减少了不必要的...

    ajax 解析json数据

    在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种创建动态网页的技术,它允许...在实际项目中,我们通常会结合前端框架,如React、Vue或Angular,使用它们提供的更高级的API来简化AJAX请求和JSON解析过程。

    ajax解析json实例

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。在Web开发中,AJAX(Asynchronous JavaScript and XML)技术常常用于...

    ajax 和 JSON2解析

    在Ajax中,JSON(JavaScript Object Notation)经常被用作数据交换格式,因为它轻量级、易于读写,并且可以直接被JavaScript解析。 JSON2是Douglas Crockford编写的JavaScript库,用于在旧版本的JavaScript引擎中...

    一头扎进Ajax&Json视频教程第一讲

    Json数据格式通常用于Ajax请求中,作为传输的数据载体,因为它能被JavaScript直接解析,无需额外的转换步骤。 在本视频教程的第一讲中,你可能会学到以下知识点: 1. Ajax的基础概念:理解什么是Ajax,它的基本...

    AjaxJson 实例 AjaxJson

    AjaxJson 是一种在 Web 应用程序中实现异步数据交换的技术,它结合了 AJAX(Asynchronous JavaScript and XML)和 JSON(JavaScript Object Notation)的优势,使得网页可以在不刷新整个页面的情况下与服务器进行...

    ajax以json格式两种在服务端的解析方法 .html

    ajax以json格式两种在服务端的解析方法 ,ajax以json格式两种在服务端的解析方法 。

    Ajax中使用JSON传输数据

    JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,因其易读性、易写性和高效性,成为了Ajax通信中数据传输的首选格式。本篇文章将深入探讨在Ajax中如何使用JSON来传输数据,以及涉及到的相关工具和...

    Ajax+JSON 搜索框自动完成提示功能

    而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 在搜索框中实现自动完成提示功能,通常会监听用户在搜索框中输入的字符,当用户输入达到一定长度...

    AjaxJson实体类与依赖包

    反之,后端生成的`AjaxJson`对象也可以被快速转换为JSON字符串,以便前端解析。 Fastjson的使用方法非常简单,例如,将一个`AjaxJson`对象转换为JSON字符串: ```java AjaxJson result = new AjaxJson(200, "成功...

    什么是Ajax和json???

    尽管名称中包含了“XML”,但实际上Ajax不仅仅局限于使用XML作为数据格式,也可以使用其他格式如JSON。 **组成Ajax的关键技术包括:** - **XHTML/CSS**: 提供网页的基本结构和样式。 - **DOM (Document Object ...

    ajax返回json对象.zip

    总结来说,"Ajax返回JSON对象"涉及到的技术点包括Ajax的基本使用、JSON数据格式、Ajax发送和接收JSON数据的流程、jQuery对Ajax的支持、跨域请求以及安全性和错误处理。这些都是Web开发中不可或缺的知识点,理解和...

    处理ajax返回带有换行的json数据

    通过设置Ajax请求的`error`回调函数,可以对解析错误进行适当响应,提示用户或进行其他恢复操作。 5. **使用fetch API**:现代浏览器提供了fetch API,它提供了一种更优雅的方式来处理Ajax请求。使用fetch时,可以...

    使用jquery的方式通过ajax处理json格式的数据

    本教程将深入探讨如何使用jQuery通过Ajax处理JSON格式的数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,是Web服务和客户端之间交换数据的常用...

    Ajax+JSON 提交数据的演示

    - **数据封装**:在Ajax请求中,JSON格式被用来封装要发送到服务器的数据,如表单字段值。这可以通过JavaScript对象创建,然后转化为JSON字符串。 ```javascript let data = { username: 'John Doe', password: ...

    Java+Ajax+JSON

    通过学习这些文件,开发者可以加深对Java、Ajax和JSON集成的理解,提升Web应用程序的开发能力。 总的来说,Java、Ajax和JSON共同构成了现代Web开发中的重要组成部分,它们的结合使得Web应用能够提供更加流畅、实时...

    AJAX+json初学案例

    在实际应用中,它常与JSON(JavaScript Object Notation)数据格式结合使用,因为JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。这个“AJAX+json初学案例”旨在帮助初学者理解如何...

    springMVC+ajax+json

    在Ajax请求中,通常JSON被用作数据传输格式,因为它可以直接被JavaScript解析为对象,无需额外的序列化和反序列化过程。 **Spring MVC、Ajax和JSON的结合** 在Spring MVC中,Controller可以返回JSON格式的数据响应...

Global site tag (gtag.js) - Google Analytics