详读JSON对象标记的技巧及其困难

开发
书写JSON对象标记的时候,经常需要解析从服务器返回的一串字符串,这里简单介绍服务器返回字符的两种格式,及JS对它们的解析方法。

JSON对象标记对XML的解析是基于DOM的,对HTML的DOM熟悉的话,解析XML就没什么困难了。注意:在Firefox中,解析器不会忽略空格,所以元素间的空格,FF一样会认为是一个节点。

一、JSON对象标记(JavaScript Object Notation),是一种以JS声明对象的方式组合的一串字符串。JS可以按以下方式定义对象:

  1. var obj =  
  2. {  
  3. id: 2,  
  4. name: 'n'  
  5. }; 

这样就定义了对象 obj, 它有两个公共属性id和name,可以用 obj.id 的方式直接访问其属性值。从服务器获取数据时往往不止一个对象,这就需要用到对象数组,JS中对象数组可以用 [] 来定义,如下:

  1. var objs = [{ id: 1, name: 'n_1' }, { id: 2, name: 'n_2'}];  
  2.         alert(objs[0].id); 

这样就定义了对象数组 objs, 它包含两个对象,可以用索引来访问,如 objs[0] 将引用到***个对象。到这里你或许已经想到服务器返回的字符串格式是怎样的,但字符串毕竟是字符串,我们需要将其转换为可以利用JS操作的变量。这就用到 eval 函数,请看下例:

  1. var objs = eval("[{ id: 1, name: 'n_1' }, { id: 2, name: 'n_2'}]");  
  2. lert(objs[0].id); // return 1 

JSON对象标记在Default.aspx 文件中添加测试脚本:

  1. <script type="text/javascript"> 
  2.         function getJson() {  
  3.             // 在IE7下测试通过,IE6下必须创建 new ActiveXObject("MSXML2.XMLHTTP.6.0")  
  4.             var request = new XMLHttpRequest();  
  5.  
  6.             request.open('GET', 'GetJson.ashx');  
  7.             request.onreadystatechange = function() {  
  8.                 if (request.readyState == 4 && request.status == 200) {  
  9.                     var objs = eval(request.responseText);  
  10.                     alert(objs.length); // 2  
  11.                     alert(objs[0].id);  // 1  
  12.                     alert(objs[1].name);// 'n_2'  
  13.                 }  
  14.             }  
  15.             request.send(null);  
  16.         }  
  17.     </script> 

【编辑推荐】

  1. 探索JSON格式封装的使用方法
  2. 探索非同凡响的Json数据格式说明
  3. 大致阐述JSON数据格式的编写与运行方式
  4. 在JavaScript中串行化为JSON—使用json2.js
  5. 几分钟简述JSON对象的相关技巧
责任编辑:chenqingxiang 来源: 赛迪
相关推荐

2009-12-21 16:40:10

ADO连接

2009-12-21 13:59:03

ADO.NET特性

2009-12-24 16:36:27

ADO Connect

2010-01-08 14:48:26

Javascritp处

2010-01-06 15:35:06

JSON对象

2017-07-19 16:34:44

笔记本拆解技巧

2009-12-10 13:40:03

VS2005程序

2009-12-16 15:53:34

Visual Stud

2024-09-30 11:08:18

JSON局限性数据

2009-12-24 14:39:53

设计ADO.NET

2009-12-15 18:00:54

.NET 4.0

2009-12-11 17:57:13

PHP应用JSON

2010-01-08 14:27:45

JSON 帮助

2009-12-30 14:05:01

DLP发展趋势网络监视考察技巧

2010-01-11 13:31:03

C++语言

2009-12-30 13:06:05

DLP网络监视数据泄漏

2024-07-08 10:51:16

2010-01-18 16:51:14

交换机配置不当

2009-12-04 14:41:11

PHP数组变成JSON

2010-01-06 15:18:51

Json插件
点赞
收藏

51CTO技术栈公众号