处理复杂的JSON对象

转载请注明出处:http://www.uphtm.com/js/226.html

我们可以使用对象直接量作为一个JSON对象中的值,换句话说,对象直接量嵌套在对象直接量中,从而创建甚至更为复杂的信息集合。

这里有一个例子。假设我们希望服务器使用JSON送回多个人的联络信息。我们将向名为contacts.php的文件发送一个请求,带上一个查询字符串,指明希望返回多少个联络人的信息。代码可能如下所示:

  1. $.getJSON(‘contacts.php‘,‘limit=2’,processContacts);

limit=2是发送给服务器的信息,它表示应该返回多少个联络人的信息。Web服务器随后将返回两个联络人的信息。假设第一个人的联系信息和上面的例子相同(Frank Smith),第二个人的联络信息是如下所示的另一个JSON对象:

  1. {
  2. firstName:‘Peggy‘,
  3. lastName:‘Jones‘,
  4. phone:’415-555-5235’
  5. }

Web服务器可能返回表示一个单个JSON对象的字符串,它组合了这两个对象,如下所示:

  1. {
  2. contact1:{
  3. firstName:‘Frank‘,
  4. lastName:‘Smith‘,
  5. phone:’503-555-1212’
  6. },
  7. contact2:{
  8. firstName:‘Peggy‘,
  9. lastName:‘Jones‘,
  10. phone:’415-555-5235’
  11. }
  12. }

假设回调函数接收了一个名为data的单个参数(例如,函数processContacts-(data))。变量data将会随后分配给该JSON对象,就好像执行了如下的代码:

  1. var data={
  2. contact1:{
  3. firstName:‘Frank‘,
  4. lastName:‘Smith‘,
  5. phone:’503-555-1212’
  6. },
  7. contact2:{
  8. firstName:‘Peggy‘,
  9. lastName:‘Jones‘,
  10. phone:’415-555-5235’
  11. }
  12. };

现在,我们可以在回调函数中访问第一个联络人对象的信息,如下所示:

  1. data.contact1

并且像下面这样访问第一个联络人的名字:

  1. data.contact1.firstName

但是,在这个例子中,由于我们想要处理多个联络人,因此jQuery提供了一个函数允许遍历JSON对象中的每个项目,这就是each()函数。其基本的结构是:

  1. $.each(JSON, function(name, value){
  2. });

我们给each()函数传递了JSON对象以及一个匿名函数。这个匿名函数接收JSON对象中的每个项目的名字和值。下面是在当前的例子中使用JSON对象的样子:

  1. 1$.getJSON(‘contacts.php‘,‘limit=2’,processContacts);
  2. 2 function processContacts(data){
  3. 3//create variable with empty string
  4. 4 var infoHTML=’’;
  5. 5
  6. 6//loop through each object in the JSON data
  7. 7$.each(data, function(contact, contactInfo){
  8. 8 infoHTML+=’<p>Contact:’+contactInfo.frstName;
  9. 9 infoHTML+=’’+contactInfo.lastName+’<br>’;
  10. 10 infoHTML+=‘Phone:’+contactInfo.phone+’</p>’;
  11. 11});//end of each()
  12. 12
  13. 13//add finished HTML to page
  14. 14$(‘#info‘).html(infoHTML);
  15. 15}

代码分解分析如下:

1.第1行创建了Ajax请求,并且指定了回调函数

2.第2行创建了回调函数,它接收服务器送回的JSON对象并将其存储到变量data中。

3.第4行创建了一个空字符串。最终添加到页面的HTML将填充该字符串。

4.第7行是each()函数,它将会遍历JSON数据中的对象。

each()函数接收JSON对象作为其第一个参数(data),接收一个匿名函数作为其第二个参数。基本上,对于主对象中的每个对象(在这个例子中是contact1和contact2),该匿名函数都接收作为字符串的该对象的名字(即 第7行中列出的contact参数)以及该对象的值(即contactInfo参数)。在这个例子中,contactInfo变量将保存包含了联络信息的 对象直接量。

5.第8~10行从一个联络人中提取信息。

each()函数是一个循环,因此,第8~10行对于每个联络人运行两次。

6.第14行通过把HTML添加到页面来更新Web页面。

最终的结果是如下的HTML:

  1. <p>Contact:Frank Smith<br>
  2. Phone:503-555-1212</p>
  3. <p>Contact:Peggy Jones<br>
  4. Phone:415-555-5235</p>

原文:处理复杂的JSON对象,转载请注明出处:http://www.uphtm.com/js/226.html

时间: 2024-10-11 11:14:52

处理复杂的JSON对象的相关文章

javascript 对象属性的添加,删除,json对象和字符串转换方法等

1:动态添加 对象属性 var obj = new Object(); console.log (obj.username); obj.username = "haha"; console.log (obj.username); //undefined //haha 用"[]"表示.写成 obj["username"] = "haha"; var obj = new Object(); console.log (obj.use

json字符串转换成json对象

Json字符与Json对象的相互转换方式有很多,接下来将为大家一一介绍下,感兴趣的朋友可以参考下哈,希望可以帮助到你 1>jQuery插件支持的转换方式: 代码如下: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器: 代码如下: JSON.parse(jsonstr); //可以将json字符

SpringMVC @RequestBody接收Json对象字符串

转:http://www.cnblogs.com/quanyongan/archive/2013/04/16/3024741.html 以前,一直以为在SpringMVC环境中,@RequestBody接收的是一个Json对象,一直在调试代码都没有成功,后来发现,其实 @RequestBody接收的是一个Json对象的字符串,而不是一个Json对象.然而在ajax请求往往传的都是Json对象,后来发现用 JSON.stringify(data)的方式就能将对象变成字符串.同时ajax请求的时候也

Json对象与Json字符串互转(转载)

一.jQuery插件支持的转换方式 1 $.paseJSON(jsonstr);//将json字符串转换为json对象 二.浏览器支持的转换方式(Firefox,Chrome,Opera,Safair,IE9,IE8) 1 JSON.parse(jaonstr);//将json字符串转换为json对象 2 JSON.stringify(jsonobj);//将json对象转换为json字符串 注意:由于ie8(兼容模式),ie7和ie6没有JSON对象,需要使用JSON官方的方式,引入json.

Json对象与Json字符串互转(4种转换方式)

一.jQuery插件支持的转换方式 1 $.paseJSON(jsonstr);//将json字符串转换为json对象 二.浏览器支持的转换方式(Firefox,Chrome,Opera,Safair,IE9,IE8) 1 JSON.parse(jaonstr);//将json字符串转换为json对象 2 JSON.stringify(jsonobj);//将json对象转换为json字符串 注意:由于ie8(兼容模式),ie7和ie6没有JSON对象,需要使用JSON官方的方式,引入json.

实体类和JSON对象之间相互转化

. [代码]工具类 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 package myUti

Json对象与Json字符串互转

Json字符与Json对象的相互转换方式有很多,接下来将为大家一一介绍下,感兴趣的朋友可以参考下哈,希望可以帮助到你 1>jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:  JSON.parse(jsonstr); //可以将json字符串转换成json对象

JSON对象和String之间的互转及处理

如题,本文列举了一些在web前端开发中常用的转换及处理方式.使用JSON而不是字符串,主要是为了方便处理. JSON:JavaScript 对象表示法(JavaScript Object Notation),其实JSON就是一个JavaScript的对象(Object)而已. 如有不清楚JSON,可以去w3cschool了解http://www.w3school.com.cn/json/ 1.在javascript中新建一个字符串(JSON文本). var txt = '{ "employees

js中把JSON字符串转换成JSON对象最好的方法

在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 第一种解析方式:使用eval函数来解析,并且使用jQuery的each方法来遍历 用jQuery解析JSON数据的方法,作为jQuery异步请求的传输对象,jQuery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明. 这里首先

SJ9012: IE6 IE7 不支持 JSON 对象

标准参考 JSON 是一种数据交换格式,RFC 4627 对 JSON 进行了详细描述. 根据 ECMA-262(ECMAScript)第 5 版中描述,JSON 是一个包含了函数 parse 和 stringify 的简单对象. parse 函数用来解析一个 JSON 文本(一个 JSON 格式的字符串)到一个 ECMAScript 值(例如 JSON 对象被解析为 ECMAScript 对象, JSON 数组被解析为 ECMAScript 数组,其它类型以此类推):stringify 则相反