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

JSON 轻量级的数据交换格式

    博客分类:
  • Json
阅读更多

JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。

在普通的 Web 应用中,开发者经常为 XML 的解析伤透了脑筋,无论是服务器端生成或处理 XML,还是客户端用 JavaScript 解析 XML,都常常导致复杂的代码,极低的开发效率。实际上,对于大多数 Web 应用来说,他们根本不需要复杂的 XML 来传输数据,XML 的扩展性很少具有优势,许多 AJAX 应用甚至直接返回 HTML 片段来构建动态 Web 页面。和返回 XML 并解析它相比,返回 HTML 片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。

JSON 为 Web 应用开发者提供了另一种数据交换格式。和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象。

JSON的结构基于下面两点

  • “名称/值”对的集合 不同语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list)等
  • 值的有序列表 多数语言中被理解为数组(array)

服务器端,以PHP为例,我们可以很简单的返回JSON数据:

<?php

$arr={'city'=>'beijing','code'=010};

echo json_encode($arr);

?>

JSON以一种特定的字符串形式来表示 JavaScript 对象。如果将具有这样一种形式的字符串赋给任意一个 JavaScript 变量,那么该变量会变成一个对象引用,而这个对象就是字符串所构建出来的。

这里假设我们需要创建一个User对象,并具有以下属性

  • 用户ID
  • 用户名
  • 网站

您可以使用以下JSON形式来表示User对象

{"UserID":100, "Name":"biaodianfu", "website":"www.biaodianfu.com"};

然后如果把这一字符串赋予一个JavaScript变量,那么就可以直接使用对象的任一属性了。

<script>

var User = {"UserID":100, "Name":"biaodianfu", "Website":"www.biaodianfu.com"};

alert(User.Name);

</script>

实际使用时可能更复杂一点,比如我们为Name定义更详细的结构,使它具有EnglishName和ChineseName:

{"UserID":100, "Name":{"EnglishName":"biaodianfu","ChineseName":"标点符"}, "Website":"www.biaofianfu.com"};

完整代码:

<script>

var User = {"UserID":100, "Name":{"EnglishName":"biaodianfu","ChineseName":"标点符"}, "Website":"www.biaofianfu.com"};

alert(User.Name.ChineseName);

</script>

如果某个页面需要一个用户列表,而不仅仅是一个单一的用户信息,那么就需要创建一个用户列表数组。下面代码演示了使用JSON形式定义这个用户列表:

[

{"UserID":100, "Name":{"EnglishName":"biaodianfu","ChineseName":"标点符"}, "Website":"www.biaofianfu.com"},

{"UserID":101, "Name":{"EnglishName":"biaodianfu","ChineseName":"标点符"}, "Website":"www.biaofianfu.com"},

{"UserID":102, "Name":{"EnglishName":"biaodianfu","ChineseName":"标点符"}, "Website":"www.biaofianfu.com"},

]

完整代码:

<script>

var UserList = [

{"UserID":100, "Name":{"EnglishName":"biaodianfu","ChineseName":"标点符"}, "Website":"www.biaofianfu.com"},

{"UserID":101, "Name":{"EnglishName":"biaodianfu","ChineseName":"标点符"}, "Website":"www.biaofianfu.com"},

{"UserID":102, "Name":{"EnglishName":"biaodianfu","ChineseName":"标点符"}, "Website":"www.biaofianfu.com"},

];

alert(UserList[0].Name.ChineseName);

</script>

除了使用”.”引用属性外,还可以使用下面语句:

alert(UserList[0]["Name"]["ChineseName"]);

 或者

alert(UserList[0].Name["ChineseName"]);

JSON的一些规则:

  • 对象是属性、值对的集合。一个对象的开始于“{”,结束于“}”。每一个属性名和值间用“:”提示,属性间用“,”分隔。
  • 数组是有顺序的值的集合。一个数组开始于”[",结束于"]“,值之间用”,”分隔。
  • 值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。
  • 字符串和数字的定义和C或Java基本一致。

JSON的一些优点:

  • JSON 提供了一种优秀的面向对象的方法,以便将元数据缓存到客户机上。
  • JSON 帮助分离了验证数据和逻辑。
  • JSON 帮助为 Web 应用程序提供了 Ajax 的本质

参考网址:

http://www.json.org/json-zh.html

http://www.ibm.com/developerworks/cn/web/wa-lo-json/

http://zh.wikipedia.org/wiki/JSON

分享到:
评论

相关推荐

    JSON轻量级数据交换格式介绍及其结构

    内容概要:本文档详细介绍了JSON (JavaScript Object Notation),一种轻量级的数据交换格式。文中解释了JSON基于ECMA-262标准的一个子集,并强调了其文本格式的特点以及适用于多种编程语言。文档还深入解析了JSON的...

    JSON 是一种轻量级的数据交换格式。该文档详细介绍了JSON

    ### JSON:一种轻量级的数据交换格式 #### 定义及背景 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以其简洁性和易读性而受到广泛欢迎。JSON最初由Douglas Crockford在1999年提出,并在随后...

    JSON介绍——一种轻量级的数据交换格式

    JSON是一种轻量级的数据交换格式。所谓轻量级,一是指这种格式不需要特定的容器,二是运行时占用很少的资源。JavaScript语言可以直接读取JSON数据格式的内容,所以在Web2.0中JSON有着广泛的应用。

    JSON(JavaScriptObject Notation)是一种轻量级的数据交换格式

    JSON(JavaScriptObject Notation)是一种轻量级的数据交换格式。它基于JavaScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯。这些特性使JSON成为理想的数据交换语言。易于人...

    JSON API 一种轻量级的数据交换格式

    JSON (JavaScript Object Notation) 是一种广泛用于数据交换的轻量级格式,尤其在Web服务和前后端交互中扮演着重要角色。它基于JavaScript语言的一个子集,因此在JavaScript环境中解析和生成JSON数据非常便捷。JSON...

    json一种轻量级的数据交换格式机器解析和生成

    ### JSON:一种轻量级的数据交换格式及其应用 #### 一、JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它源于JavaScript的语法,但因其简洁、高效的特点,在各种编程环境中得到了广泛...

    基于Java的微众银行开源轻量级数据交换平台Exchangis设计源码

    本微众银行开源轻量级数据交换平台Exchangis基于Java开发,包含1183个文件,包括Java源代码、PNG图片、XML配置文件、Scala源代码、Vue组件、JSON配置文件、Markdown文档、JavaScript脚本、Properties配置文件和SVG...

    JSON数据交换格式在异构系统集成中的应用研究.docx

    JSON 数据交换格式是近年来兴起的一种轻量级的数据交换格式,它在异构系统集成中应用广泛。本文将从 JSON 数据交换格式的概念、特点、优越性三个方面对其进行分析,并探讨其在异构系统集成中的应用。 一、JSON 数据...

    JSON数据交换格式练习_爬虫练习_JSON数据交换格式练习.py_

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于网络应用程序之间传递数据。它基于JavaScript的一个子集,但其实它是语言无关的,有独立的规范,并且可以被任何支持JSON的编程语言解析和...

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式

    json 轻量级解析库 json.me.zip

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于移动和嵌入式应用程序,因为它易于读写,同时也被大多数编程语言所支持。JSON.me.zip 是一个包含JSON解析库的压缩包,旨在帮助开发者在...

    android使用JSON进行网络数据交换最新版本

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,非常适合于服务器与客户端的交互。JSON采用与编程语言无关的文本格式,但是也使用了类C语言的习惯,...

    JSON是一种轻量级的数据交换格式

    json

    json数据格式化(editplus 格式化 Json 工具 )

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。它基于JavaScript的一个子集,具有易读易写的特点,同时也易于机器解析和生成。JSON格式通常由键值对组成,键...

    一款免费轻量级JSON Editor For Mac

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传输数据。它基于JavaScript的一个子集,格式清晰、易于阅读和编写,同时也易于机器解析和生成。JSON Editor则是一款专...

    JSON数据交换格式及其在数据验证中的应用.pdf

    首先,JSON 是一种轻量级的数据交换格式,易于人类阅读和机器解析。它可以用来存储复杂的验证数据和规则,从而提高数据验证的效率。同时,JSON 也可以用于缓存元数据,减少服务器的负载和网络传输量。 在数据验证中...

    纯pb代码编写的解析json数据,含生成、格式化等

    JSON(JavaScript Object Notation)则是一种轻量级的数据交换格式,被广泛用于前后端数据传输。 在描述中提到,“纯pb脚本编写的解析json数据,含生成、格式化和以treeview显示结构等功能”,意味着这个程序不仅...

    JSON数据交换

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。它的设计目标是人可读性高且易于编写,同时也容易让计算机解析和生成。JSON数据交换主要涉及以下几个...

    android使用JSON进行网络数据交换(服务端、客户端)的实现

    JSON是一种轻量级的数据交换格式,以文本形式存储和传输数据,易于人阅读和编写,同时也容易让机器解析和生成。其基本数据类型包括对象(object)、数组(array)、字符串(string)、数字(number)、布尔值...

Global site tag (gtag.js) - Google Analytics