`
lyltiger
  • 浏览: 92711 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

浅谈json-1

阅读更多
学习下json,网上看到这样一篇文章,mark!
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更新页面信息
分享到:
评论

相关推荐

    JSON浅谈-2

    1. 名称/值对的集合(一个对象):在不同的编程语言中,这种结构可以被理解为对象、记录、结构、字典、哈希表、键列表或关联数组。在JSON中,一个对象由一系列名称和值组成,这些名称/值对用逗号分隔,整个对象被大...

    浅谈webpack-dev-server的配置和使用

    本文介绍了浅谈webpack-dev-server的配置和使用,分享给大家,具体如下: 1安装的WebPack-dev-server 在终端输入 npm i webpack-dev-server 安装webpack-dev-server包 2.配置dev-server 在package.json文件...

    浅谈ios中的json解析(转载)

    1. `NSJSONSerialization`是Apple官方提供的JSON解析库,它支持将JSON字符串转换为Objective-C或Swift的数据类型,也可以将数据模型转换回JSON字符串。使用`NSJSONSerialization`的基本步骤如下: - 将JSON字符串...

    浅谈JAVA中JSON的应用——以天气预报数据接口为例.pdf

    "浅谈JAVA中JSON的应用——以天气预报数据接口为例" JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于编程语言的文本格式来存储和表示数据,不但易于人阅读和编写,同时也易于机器...

    浅谈Python中的异常和JSON读写数据的实现

    - `json.loads(json_string)`:将JSON格式的字符串`json_string`转换成Python对象。 这些功能在处理更复杂的数据结构时非常有用。 ### 结论 通过以上的讨论,我们可以看到Python中的异常处理机制是强大而灵活的,...

    浅谈JSON.parse()和JSON.stringify()

    1. JSON.parse() 方法主要用于将JSON格式的字符串转换为JavaScript的对象。它接受一个JSON格式的字符串作为参数,并解析成一个JavaScript对象。例如,在网络请求中,服务端通常会返回JSON格式的字符串,这时我们就...

    【ASP.NET编程知识】浅谈对Jquery+JSON+WebService的使用小结.docx

    【ASP.NET编程知识】浅谈对Jquery+JSON+WebService的使用小结 在现代Web开发中,ASP.NET结合jQuery和JSON以及WebService技术是构建动态交互界面的常见选择。jQuery作为一个强大的JavaScript库,以其简洁易用的API...

    浅谈json_encode用法

    1.从数据库中查询出来的数据,放在数组中 复制代码 代码如下: $query=mysql_query($SQL);  while($row = mysql_fetch_array($query)){  $xdata[]=$row[‘EventDate’];  $ydata[]=intval($row[‘data’]);  } ...

    浅谈JSON中stringify 函数、toJosn函数和parse函数

    1. value:必需。这是要转换成JSON字符串的JavaScript值。这个值可以是对象、数组、字符串、数字、布尔值或null。如果传入的不是原始值类型,则会调用该值的toString()方法,然后进行序列化。 2. replacer:可选。...

    浅谈json取值(对象和数组)

    1. 使用`$.getJSON`方法获取JSON数据。 2. 创建一个空数组`items`用于存储要插入HTML的元素。 3. 使用`$.each`函数遍历`***ments`数组。 4. 在每次迭代中,创建一个新的`li`元素,并将评论的`class`和`content`拼接...

    浅谈JSON的数据交换、缓存问题和同步问题

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。相较于XML,JSON解析速度快,占用的存储空间更小,因此成为开发者首选的数据交互格式。JSON格式遵循以下规则:...

    浅谈JSON.stringify()和JOSN.parse()方法的不同

    1. JSON.stringify()用于对象到字符串的转换,而JSON.parse()用于字符串到对象的转换。 2. JSON.stringify()可以忽略某些属性(通过替换函数实现),而JSON.parse()可以进行值的转换或过滤。 3. JSON.stringify()...

    浅谈go-restful框架的使用和实现

    2. 客户端和服务器之间传递的是资源的某种表现形式,表现形式可以是JSON、文本、二进制或图片等。 3. 客户端通过HTTP协议中的四个主要动词,即GET、POST、PUT、DELETE,对服务器端的资源进行操作,从而实现表现层...

    浅谈vue-cli 3.0.x 初体验

    为了指定不同的环境配置,可以在`package.json`中添加自定义脚本,例如 `"dev-build": "vue-cli-service build --mode development"`,这样就能在开发环境下运行特定的构建任务。而`process.env.NODE_ENV` 变量可以...

    浅谈vue-cli加载不到dev-server.js的解决办法

    1. **配置本地访问**: 在`webpack.dev.conf.js`文件中,引入`express`库,创建一个Express应用实例。Express是一个强大的Node.js Web应用程序框架,用于处理HTTP请求。例如: ```javascript const express = ...

    浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用

    1. 定义一个回调函数,例如showPrice,用于处理返回的JSON数据。 2. 创建一个script标签,并设置src属性为远程服务器的URL,并携带callback参数。 3. 将这个script标签动态插入到HTML文档中。 另外,服务端的实现示...

Global site tag (gtag.js) - Google Analytics