`

XML的代替者JSON

    博客分类:
  • web
阅读更多

我个人觉得PHP与Javascript各有长处,如果能完美的结合起来,那将创造出许许多多的奇迹! 我是初次写此类文章,Bug难免,请各位指正~
现在AJAX应用非常流行,而在AJAX中客户端Javascript和服务端动态脚本的通信是关键。如果传输的信息比较简单,通常我们会直接采用字符串的方式,如果信息结构复杂一点,则通常用XML文档。XML文档虽然应用广泛,但是用php生成和用Javascript处理却不是一件很容易的事情。这里我推荐一种XML文档的比较好简化替代方案:JSON!
首先我们来了解一下Javascript的基础知识。
1.创建数组,可以用JS内建的类Array来初始化,也可以用JSON符号"[]"。下面通过两种方式创建的arr1和arr2的实质是一样的:
var arr1 = new Array();
arr1[0] = "apple";
arr1[1] = "google";
arr1[2] = "longbill";
var arr2 = ["apple","google","longbill"];
注意,数组的索引也可以是字符串,如 arr1["name"] = "longbill"; 这时的数组就相当于对象了。。。
2.创建对象,可以用JS内建的类Object来初始化,也可以用JSON符号"{}"。下面通过两种方式创建的obj1和ob2的实质也是一样的:

var obj1 = new Object();
obj1.name = "longbill";
obj1.age = 18;
var obj2 = { name:"longbill",age:18 };
注意,这里"{"和"}"之间必须写成"键:值"的形式,而且不同的"键:值"之间要用","分割。 "键"中也可以包含空格等特殊字符,此时要用""(引号)来引用,如 "phone number":123456
其实在JS中,数组的本质是一个对象,对象本身也是一个数组。所以, obj1.name 和 obj1["name"] 是同一个引用。
我们还可以通过JSON符号的嵌套来定义复杂的S对象:

var people = [
{
name:"longbill",
age:18
},
{
name:"neal",
age:19
},
{
name:"glocklee",
age:17
}
];
//这个应该看的懂吧~~
大部分XML文档都可以用JSON来表达:

<?xml version="1.0"?>
<root>
<book>
<name>Ju love</name>
<price>$15</price>
</book>
<book>
<name>Javascrip</name>
<price>$25</price>
</book>
</root>
如果用JSON就可以表达为:
{
root:
[
{
name:"Ju love",
price:"$15"
},
{
name:"Javascript",
price:"$25"
}
]}
是不是简化很多?
而且客户端JS处理起来也很简单,只要用执行字符串函数 "eval" 就可以将JSON信息提取出来,而如果是XML文档,那就不的不用大量的标准DOM操作来提取其中的数据。如:

//已经用AJAX从服务端下载了一个JSON文件(字符串),保存在变量 json 里
eval("var myvar = "+json);
//这样,JSON里的信息就表达在myvar这个变量里了。
缺点:一旦JSON的格式错误,将导致服务端JS系统错误,甚至崩溃。
解决办法:
最好在eval之前使用try(试探执行),如

//已经用AJAX从服务端下载了一个JSON文件(字符串),保存在变量 json 里
try {
eval("var myvar = "+json);
} catch(e) { alert('json syntax error!'); }
//这样,即使JSON格式错误,也只会弹出一个提示框,而不会抛出一个脚本错误!

分享到:
评论

相关推荐

    XML的代替者—-JSON

    JSON作为一种替代XML的选择,尤其在AJAX(Asynchronous JavaScript and XML)应用中,因其易于阅读、编写以及解析,而受到了开发者的青睐。 XML,虽然功能强大,支持复杂的数据结构,但在JavaScript中处理XML文档并...

    XML的代替者----JSON

    JSON被广泛应用于Web服务和客户端之间的数据交互,特别是在AJAX(Asynchronous JavaScript and XML)技术中,它逐渐取代了XML,成为更受欢迎的选择。 在XML和JSON的比较中,XML虽然提供了丰富的结构化表示,但其...

    exercises-json-rpc.pdf

    #### 练习三:重构先前练习,采用JSON-RPC代替显式使用JSONObject和JSONArray 重新实现之前练习中的功能,但这次使用JSON-RPC替代直接操作`JSONObject`和`JSONArray`。需要注意的是,如果服务器端的方法返回一个`...

    WEB安全之XXE实体注入漏洞.pdf

    5. 使用更安全的替代技术,如JSON,代替XML进行数据交换。 **0x06 XML注入预防** 除了防止XXE之外,防止XML注入的其他方法还包括: 1. 使用预定义的白名单策略限制接受的XML结构。 2. 对XML数据进行转义,防止恶意...

    Ajax和PHP入门

    在实际应用中,通常使用JSON代替XML,因为JSON更轻量级且易于处理。Ajax的关键步骤包括创建XMLHttpRequest对象、发送请求、处理服务器响应以及更新DOM(Document Object Model)。 **PHP基础** PHP是一种广泛使用...

    fastjson-1.2.38的官方jar包合集【fastjson-1.2.38.jar,fastjson-1.2.38-sources.jar】

    此外,Fastjson还支持JSONPath表达式,用于在JSON对象中进行查询和操作,类似于XPath在XML中的作用。 **2. fastjson-1.2.38-sources.jar - 源代码包** 源码包对于开发者来说是极其宝贵的资源,它允许开发者查看并...

    ajax练习框架,ajax练习框架,ajax练习框架,ajax练习框架,

    2. JSON数据格式:Ajax常用的数据交换格式,用于代替XML,因为JSON更轻量级且易于解析。 3. DOM操作:接收到服务器响应后,需要更新DOM以反映数据变化。掌握选择元素、创建元素和修改元素的方法至关重要。 4. 异步...

    Ajax的学习笔记

    这种技术的核心是JavaScript,XML最初是作为数据交换格式,但随着JSON的流行,现在更多地使用JSON代替XML。 ### 一、Ajax的基本工作原理 1. **创建XMLHttpRequest对象**:这是Ajax的核心组件,几乎所有的现代...

    ASP.NET Ajax框架教程(附源码实例)

    2. 考虑JSON代替XML:JSON(JavaScript Object Notation)通常比XML更快,更适合于AJAX通信。 3. 有效利用Partial Page Rendering:了解何时应使用Partial Rendering,以及如何手动触发Partial Render以优化性能。 ...

    ajax实现的简单聊天室

    3. JSON或XML:通常用来格式化和传输数据。在这个例子中,由于JSON更轻量级且易于处理,我们可能会用到JSON。 实现步骤如下: 1. **创建HTML结构**:聊天室的界面通常包括输入框(用户输入消息)、发送按钮、以及...

    ajax学习文档下载

    在Ajax中,JSON常用来代替XML传输数据,因为它的结构更接近JavaScript对象,处理起来更方便。 ### 3. DOM操作 Ajax更新页面通常涉及对DOM(Document Object Model)的操作。DOM是HTML和XML文档的编程接口,通过...

    python教程学习路线学习教程

    5.2 JSON和XML解析:JSON是轻量级的数据交换格式,Python有json模块支持JSON操作。XML是一种更复杂的结构化数据格式,Python的xml.etree.ElementTree模块提供了解析和生成XML的功能。 5.3 CSV和Excel的高效解析:...

    开发一个简单的通讯录

    我们可以选择JSON或XML格式来序列化和反序列化`Student`对象,因为这两种格式易于阅读且支持嵌套结构。这里我们使用`Newtonsoft.Json`库(通过NuGet安装)来处理JSON。 ```csharp using Newtonsoft.Json; // 保存...

    奇怪的struts2的中文乱码问题及解决.docx

    例如,使用Google的Gson库代替Struts2的内置JSON插件。Gson库在处理Unicode编码时表现更加稳健,它能够正确地将接收到的Unicode编码转换为对应的中文字符。通过这种方式,IE中的中文乱码问题得到了解决。 此外,...

    ASP.NET+ajax经典范例168+精选71例

    AJAX主要利用JavaScript、XML、HTML、CSS等技术,但现代实践中更多地使用JSON代替XML进行数据传输。 在"ASP.NET+ajax经典范例168+精选71例"中,你可以期待学习到以下知识点: 1. **ASP.NET基础**:包括ASP.NET页面...

    android 获取天气

    2. **Web Service通信**: Web Service通常提供API供客户端应用调用,返回JSON或XML格式的数据。在这个案例中,你可能需要与一个公开的天气API交互,如OpenWeatherMap或Weather Underground。理解API的工作机制,如何...

    ROOT.rar_ROOT

    4. **JSON代替XML**:虽然Ajax名称中包含XML,但在现代Web开发中,JSON(JavaScript Object Notation)更常用于传递数据,因为它与JavaScript语法兼容,解析和生成更加方便。因此,聊天室的通信可能以JSON格式进行,...

    IBM.AJAX.information.module.tutorial.rar_The Information

    此外,教程可能还会涉及AJAX的最佳实践,如使用JSON(JavaScript Object Notation)代替XML进行数据交换,因为JSON更轻量且易于解析。同时,IBM可能还讨论了错误处理、性能优化和跨浏览器兼容性等关键问题,这些都是...

    java web 课后习题练习+实验报告代码

    学习Ajax,需要理解XMLHttpRequest对象,以及如何使用JSON代替XML传输数据。 5. **实验报告代码**: 实验报告中的代码通常是学习者根据课程内容实际操作的实例,包括Servlet的编写、JSP页面的设计、前端交互逻辑的...

Global site tag (gtag.js) - Google Analytics