JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。 这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
介绍 JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language(参见), Standard ECMA-262 3rd Edition - December 1999(参见)的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。JSON建构于两种结构:“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。 这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。JSON具有以下这些形式:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。 值(value)可以是双引号括起来的字符串(string)、数值(number)、 ture、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。 字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。 除去一些编码细节,以下描述了完整的语言。字符串(string)与C或者Java的字符串非常相似。除去未曾使用的八进制与十六进制格式,数值(number)也与C或者Java的数值非常相似。空白可以加入到任何符号之间。
JSON与XML的比较
◆可读性 JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负。
◆可扩展性 XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。不过JSON在Javascript主场作战,可以存储Javascript复合对象,有着xml不可比拟的优势。
◆编码难度 XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有提供的工具。无工具的情况下,相信熟练的开发人员一样能很快的写出想要的xml文档和JSON字符串,不过,xml文档要多很多结构上的字符。
◆解码难度 XML的解析方式有两种: 一是通过文档模型解析,也就是通过父标签索引出一组标记。例如:xmlData.getElementsByTagName("tagName"),但是这样是要在预先知道文档结构的情况下使用,无法进行通用的封装。 另外一种方法是遍历节点(document 以及 childNodes)。这个可以通过递归来实现,不过解析出来的数据仍旧是形式各异,往往也不能满足预先的要求。 凡是这样可扩展的结构数据解析起来一定都很困难。 JSON也同样如此。如果预先知道JSON结构的情况下,使用JSON进行数据传递简直是太美妙了,可以写出很实用美观可读性强的代码。如果你是纯粹的前台开发人员,一定会非常喜欢JSON。但是如果你是一个应用开发人员,就不是那么喜欢了,毕竟xml才是真正的结构化标记语言,用于进行数据传递。 而如果不知道JSON的结构而去解析JSON的话,那简直是噩梦。费时费力不说,代码也会变得冗余拖沓,得到的结果也不尽人意。但是这样也不影响众多前台开发人员选择JSON。因为json.js中的toJSONString()就可以看到JSON的字符串结构。当然不是使用这个字符串,这样仍旧是噩梦。常用JSON的人看到这个字符串之后,就对JSON的结构很明了了,就更容易的操作JSON。 以上是在Javascript中仅对于数据传递的xml与JSON的解析。在Javascript地盘内,JSON毕竟是主场作战,其优势当然要远远优越于xml。如果JSON中存储Javascript复合对象,而且不知道其结构的话,我相信很多程序员也一样是哭着解析JSON的。
分享到:
相关推荐
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递...通过提供的jar包和学习资料,初学者可以快速掌握JSON的基本概念和使用方法,从而在实际项目中得心应手地处理数据。
在Java编程中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使得人和机器都能轻易地阅读和编写。...通过不断实践和学习,你将能够更好地应对各种涉及到JSON处理的开发任务。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。...在学习过程中,实践操作和理解每个示例代码是至关重要的,这将有助于深化对JSON的理解和应用。
在这个"json学习资料"的压缩包中,我们可能会找到与Java开发相关的JSON处理示例和代码。 在Java中,处理JSON的主要库有Jackson、Gson和org.json等。这些库提供了方便的方法来解析JSON字符串,将其转换为Java对象,...
通过深入学习JSON,不仅可以提升Web开发的效率,还能更好地理解和利用现代Web应用中的数据交换机制。通过阅读“JSON.mht”和“JSON”这两个文件,你应该能够获取更多关于JSON的实际应用和案例分析,进一步提升你的...
尽管JSON的设计灵感来源于JavaScript,但它作为一个独立的文本格式,可以被任何支持JSON的编程语言理解和处理。 JSON的主要结构包含两种类型:1. "名称/值"对的集合,这在不同语言中可表现为对象、记录、结构、字典...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它是基于JavaScript的一个子集,主要由对象、数组、字符串、数字、布尔值和null这些数据类型组成。 ...
### JSON学习笔记:深入理解与应用 #### 一、JSON简介与重要性 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于ECMAScript的一个子集,采用...
JSON 文件的格式非常简单,易于学习和使用,因此逐渐取代了 XML 成为互联网上最受欢迎的数据交换格式。 JSON 文件的优点包括: 1. 轻量级:JSON 文件的体积非常小,占用服务器资源少,传输速度快。 2. 易读易写:...
通过对这些源代码的学习,开发者可以深入理解如何在Delphi中有效地使用JSON,从而提高数据处理效率,并与Web服务或其他使用JSON的应用程序进行无缝通信。通过实践和调试这些代码,你将能够掌握Delphi与JSON交互的...
在ASP中处理JSON(JavaScript Object Notation)数据时,由于ASP本身不支持像PHP那样的关联数组,因此需要...通过上述的文件和文档,开发者可以学习到如何在ASP环境中有效地处理JSON数据,提高开发效率和应用的兼容性。
标题和描述中提到的"json所需要的夹包,json解析用,json,json夹包和教程",是指为了处理JSON数据,开发者需要获取和了解相应的解析库或工具,并学习如何使用它们。这些“夹包”提供了将JSON字符串转换为编程语言中...
JSON的学习涉及其基本语法、JSONObject和JSONArray的使用,以及在JavaScript中的解析方法。理解这些知识点对于开发Web应用至关重要,无论你是服务器端开发者还是前端开发者。正确地处理和解析JSON数据能有效提升应用...
解析和生成JSON是JSON学习中的关键技能。在JavaScript中,你可以使用`JSON.parse()`函数将JSON字符串转换为JavaScript对象,而`JSON.stringify()`函数则用于将JavaScript对象转换为JSON字符串。其他编程语言如Python...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用...通过上述知识点的学习,我们可以更好地理解和应用JSON,无论是在JavaScript编程,还是在跨平台的数据交换中,都能发挥其高效、简洁的优势。
通过查看和运行这个例子,开发者可以学习如何在实际Web环境中使用JSON。 4. `src` - 这通常包含源代码文件,可能有示例代码或者库的源代码,可以帮助读者了解JSON处理的具体实现。 5. `doc` - 这可能包含了文档,如...
### WCF返回JSON学习笔记 #### 一、WCF与JSON简介 - **WCF (Windows Communication Foundation)**:是微软开发的一个框架,用于构建服务导向的应用程序。它提供了多种通信协议的支持,包括HTTP、TCP等,并且支持...
在JModelDemo这个项目中,你可以看到如何设置和使用JSONModel来创建模型对象,以及如何在ViewController中处理这些对象。你可能会发现Controller中代码的组织方式有助于保持代码的整洁和可维护性。同时,这也提供了...
四轧json学习学习111111
JSON(JavaScript Object Notation)是...通过学习和使用JSON-C,开发者可以轻松地在C程序中处理JSON数据,提升软件的互操作性和可扩展性。对于需要与Web服务交互或处理配置文件的C程序,JSON-C是一个非常实用的工具。