`
michael_yyz
  • 浏览: 36880 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JSON技术介绍

    博客分类:
  • js
 
阅读更多

XML ——这种用于表示客户端与服务器间数据交换有效负载的格式,几乎已经成了Web services的同义词。我们知道AJAX技术能够使得每一次请求更加迅捷,对于每一次请求返回的不是整个页面,也仅仅是所需要返回的数据。然而,由于 Ajax和REST技术的出现影响了应用程序架构,这迫使人们开始寻求`XML的替代品,如:JavaScript Object Notation(JSON)。

JSON 作为一种更轻、更友好的 Web services客户端的格式(多采用浏览器的形式或访问 REST风格 Web服务的Ajax应用程序的形式)引起了 Web 服务供应商的注意。通常AJAX通过返回XML格式的数据,然后再通过客户端复杂的JavaScript脚本解析和渲染这些XML格式的数据。 JSON(读Jason)是为了能够使得数据格式成为一种标准,更简单的被JavaScript解析。

本文将阐述JSON在Web services设计中备受推崇的原因,以及它作为XML替代方案的主要优势和局限性。文中还会深入探讨:随着相应的Web 服务客户端选择使用JSON,如何才能便捷地在Java Web services中生成JSON输出。
json的官方文档: http://www.json.org/json-zh.html

JSON的优点


  • 轻量级的数据交换格式
  • 人们读写更加容易
  • 易于机器的解析和生成
  • 能够通过JavaScript中eval()函数解析JSON
  • JSON支持多语言。包括:ActionScript, C, C#, ColdFusion, E, Java, JavaScript, ML, Objective CAML, Perl, PHP, Python, Rebol, Ruby, and Lua.


JSON语法是一种用于传输和生成数据的协定,很类似于C家族的语言,所以很容易被C家族的语言所解析。
对象:对象包含再{}之间
属性:采用Key-Value对来表示。属性之间使用逗号分开。  string : value 
数组:数组存放再[]之间   [ elements ] 
元素:元素之间用逗号分开
值:值可以是字符串,数字,对象,数组,true,false,null

例子:
JSON
{"menu": {  
   "id": "file",
   "value": "File:",  
   "popup": {  
     "menuitem": [ 
       {"value": "New", "onclick": "CreateNewDoc()"}, 
       {"value": "Open", "onclick": "OpenDoc()"},  
       {"value": "Close", "onclick": "CloseDoc()"} ] 
   } 
}}
 XML
 <menu id="file" value="File" > 
    <popup> 
      <menuitem value="New" onclick="CreateNewDoc()" /> 
      <menuitem value="Open" onclick="OpenDoc()" /> 
      <menuitem value="Close" onclick="CloseDoc()" /> 
    </popup> 
 </menu>
 XML 的作用是格式化数据内容。如果我们不用XML还有什么更好的方法吗?这个答案是JSON。介绍JSON之前我先介绍一下JavaScript这门脚本语 言。脚本语言自身有动态执行的天赋。即我们可以把想要执行的语句放在字符串里,通过eval()这个动态执行函数来执行。字符串里的内容会像我们写的脚本 一样被执行。
 <HTML>
 <HEAD>
  <TITLE>eval example 1 </TITLE>
 </HEAD>
 <BODY>
  <script>
  str = "alert('hello')";
  eval(str);
  </script>
 </BODY>
 </HTML>  
 打开页面会弹出hello窗口。我们可以在字符串中放任何脚本语句,包括声明语句,等等一系列东西,比如:
 <HTML>
 <HEAD>
 <TITLE>eval example 2 </TITLE>
 </HEAD>
 <BODY>
 <script>
 define = "{name:'Michael',email:'17bity@gmail.com'}";
 eval("data = "+define);
 alert("name:"+data.name);
 alert("email:"+data.email);
 </script>
 </BODY>
 </HTML>
 如 果我们在后台异步传来的文本是JavaScript的声明语句,那么不是一条eval方法就能解析了?对于解析复杂的XML,这样的效率是多么大的提高 啊!现在就来告诉你什么是JSON:JavaScript Object Notation。我更愿意把它翻译为JavaScript对象声明。比如要从后台载入一些通讯录的信息,如果写成XML,如下:
 <contact>
  <friend>
   <name>Michael </name>
   <email>17bity@gmail.com </email>
   <homepage>http://www.jialing.net </homepage>
  </friend>
  <friend>
   <name>John </name>
   <email>john@gmail.com </email>
   <homepage>http://www.john.com </homepage>
  </friend>
  <friend>
   <name>Peggy </name>
   <email>peggy@gmail.com </email>
   <homepage>http://www.peggy.com </homepage>
  </friend>
 </contact>
 而写成JSON呢,就如下面:
[
{
 name:"Michael",
 email:"17bity@gmail.com",
 homepage:"http://www.jialing.net"
},
{
 name:"John",
 email:"john@gmail.com",
 homepage:"http://www.jobn.com"
},
{
 name:"Peggy",
 email:"peggy@gmail.com",
 homepage:"http://www.peggy.com"
}
]
 简 单的不只是表达上,最重要的是可以丢弃让人晕头转向的DOM解析了。因为只要符合JavaScript的声明规范,JavaScrip会自动帮你解析好 的。Ajax中使用JSON的基本方法是前台载入后台声明JavaScript对象的字符串,用eval方法来将它转为实际的对象,最后通过 DHTML更新页面信息。
引自:http://www.phphubei.com






分享到:
评论

相关推荐

    Json知识简介+编程知识+技术介绍

    Json知识简介+编程知识+技术介绍;Json知识简介+编程知识+技术介绍;Json知识简介+编程知识+技术介绍;Json知识简介+编程知识+技术介绍;Json知识简介+编程知识+技术介绍;Json知识简介+编程知识+技术介绍;Json知识...

    Delphi中JSon SuperObject 使用数据集与JSON对象互转.docx

    使用 Json SuperObject 将数据集与 JSON 对象互转是一件非常有用的技术。它可以帮助我们轻松地实现数据之间的通讯与转换。但是,我们需要注意 JSON 对象的格式,并正确地使用 Json SuperObject 将数据集与 JSON 对象...

    php基于jquery的ajax技术传递json数据简单实例.docx

    本文主要介绍了 PHP 基于 jQuery 的 Ajax 技术传递 JSON 数据方法,以完整实例形式分析了 PHP 基于 jQuery 的 Ajax 无刷新提交数据实现方法。下面是详细的知识点说明: HTML 页面 在 HTML 页面中,我们首先引入 ...

    Ajax技术结合XML或JSON的使用比较

    Ajax,用于描述WEB应用程序风格和创建高度交互的WEB应用所需的一组技术。...该文通过XML、JSON的介绍、实例运用及重要特征与环境支持区别的分析得出JSON是适用于Ajax web应用程序的理想数据交换格式的结论。

    c#json序列化与反序列化.doc

    本文将详细介绍 C# 中的 JSON 序列化和反序列化,包括使用 Newtonsoft.Json 库来实现 JSON 序列化和反序列化。 一、JSON 序列化 JSON 序列化是指将 .NET 对象转换为 JSON 字符串的过程。在 C# 中,我们可以使用 ...

    Android HttpClient与Json解析

    该Demo主要介绍使用HttpClient获取网络数据,然后经过JSON后显示出来。另外本文章用到了常用的异步加载技术,AsyncTask类。

    Ajax And Json.emmx

    对ajax和json的知识点记性一个总结,并使其按照一定的架构,构建成一个思维导图,便于之后对于知识点的理解和记忆...Json介绍了他的知识构架,表示方法创建等问题 同时也加入了Json数据与java对象之间相互转换的规则。

    IDEA+Gradle+SpringMVC+Json

    gradle比较新,用idea的人很少。所以自己尝试了在idea上用gradle构建SpringMVC+Json。次资源为实例demo 搭建步骤介绍请关注我的博客 技术革新太快,让你我共勉吧…

    详细案例介绍json序列化与反序列化

    详细介绍json序列化与反序列化,里面代有详细的案例,讲解透彻清淅。适合所有不同技术层次的web开发人员。

    Asp.Net及相关技术介绍

    Asp.Net WebAPI, Asp.Net MVC,JSON Asp.Net Routing, MVVM,DOM HttpModule, HttpHandler, Ajax Jquery JS,Knockout JS 内容提纲如下: 1.三种Web服务主流架构的历史演变与示例。(XML-RPC,SOAP,REST...

    json必知必会

    围绕JSON 这一主题的核心展开讲解,首先介绍JSON 语法、语法验证、数据类型、模式验证、安全问题,再讲解JSON 作为数据交换格式所扮演的种种角色,还涉及jQuery、AngularJS 以及CouchDB 等技术的进阶介绍,...

    JSON数据传输大法第一式——用OADate处理日期格式.doc

    文章还详细介绍了 JSON 的使用方法,如从 web 服务器上读取 JSON 数据、将 JSON 数据转换为 JavaScript 对象、在网页中使用该数据等。 在数据传输过程中,日期格式的处理是一个重要的方面。OADate 是一种特殊的日期...

    利用JSON实现Ajax中数据传递

    本文介绍了Ajax技术的基本原理,以及JSON技术的特点,讨论了在Ajax技术中从服务器向客户端传递数据的方式,通过实例证明使用JSON代替XML生成并传递数据的方式快速有效。

    利用JSON WebService实现Android访问远程数据库.pdf

    本文主要介绍了如何使用JSON WebService实现Android访问远程数据库。随着无线网络的普及和Android系统的发展,移动设备的性能和内存无法与PC相比,绝大多数数据库也没有直接运行在移动设备的客户端。因此,本文提出...

    JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码

    你可能目前对此仍然毫无了解,没关系,本文将以最简单易懂的方式介绍这个技术,相信人人都容易读懂,并能够实际应用。 JQuery获取同域的JSON数据 首先引用jQuery库文件: [removed][removed] jQuery代码: var url...

    JSON传递bool类型数据的处理方式介绍

    ajax中使用json传递数据时,其它数据类型都不是问题,但是如果服务器端生成的JSON中有bool类型的数据时,到客户端解析时出现了小小的问题,总结如下: 服务器返回的JSON为: 代码如下: {“TypeID”:[1037],”Title”...

    课程作业-基于C语言实现的JSON解析器源码(含节点创建、解析、封装、输出等功能).zip

    《项目介绍》 课程作业-基于C语言实现的JSON解析器源码(含节点创建、解析、封装、输出等功能).zip课程作业-基于C语言实现的JSON解析器源码(含节点创建、解析、封装、输出等功能).zip课程作业-基于C语言实现的JSON...

    zjson:JSON格式化和编辑工具,支持错误的json解析和提示错误行,支持python unicode集合的解析,支持json转义压缩,支持历史解析记录,支持json比较,支持多种皮肤切换,支持桌面安装版下载等!

    转杰森是使用MEAN-STACK(MongoDB + Express + Angular + NodeJS技术栈)开发一个JSON格式化和编辑工具,功能丰富强大,界面简洁,还有很多高级特性: 支持错误的json解析及错误行号和错误类型提示; 支持python ...

    中国裁判文书网1

    本文档详细介绍了中国裁判文书网爬虫技术的实现过程,包括反反爬流程、爬虫技术、POST请求参数计算、Cookie参数获取、JSON数据解析、详情页URL获取等知识点。 一、反反爬流程 反反爬流程是指在爬虫技术中,如何...

    基于Vue技术的冬奥会科普介绍网站设计源码

    本源码提供了一个基于Vue技术的冬奥会科普介绍网站设计。项目包含71个文件,其中包括49个PNG图片、9个Vue文件、3个JSON文件、3个JPG图片、3个JavaScript文件、1个Gitignore文件、1个Markdown文档、1个HTML文件和1个...

Global site tag (gtag.js) - Google Analytics