定义
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集。 JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式。
JSON的结构基于下面两点
- "名称/值"对的集合 不同语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list)等
- 值的有序列表 多数语言中被理解为数组(array)
使用:
JSON以一种特定的字符串形式来表示 JavaScript 对象。如果将具有这样一种形式的字符串赋给任意一个 JavaScript 变量,那么该变量会变成一个对象引用,而这个对象就是字符串所构建出来的,好像有点拗口,我们还是用实例来说明。
这里假设我们需要创建一个User对象,并具有以下属性
用户ID
用户名
用户Email
您可以使用以下JSON形式来表示User对象:
- {"UserID":11, "Name":"hualai", "url":"http://www.hualai.net.cn"};
然后如果把这一字符串赋予一个JavaScript变量,那么就可以直接使用对象的任一属性了。
完整代码:
- <script>
- var User ={"UserID":11, "Name":"hualai", "url":"http://www.hualai.net.cn"};
- alert(User.Name);
- </script>
实际使用时可能更复杂一点,比如我们为Name定义更详细的结构,使它具有FirstName和LastName:
- {"UserID":11, "Name":{"FirstName":"hua","LastName":"lai"}, "Email":"http://www.hualai.net.cn"}
完整代码:
- <script>
- var User ={"UserID":11, "Name":{"FirstName":"hua","LastName":"lai"}, "Email":"http://www.hualai.net.cn"};
- alert(User.Name.FirstName);
- </script>
现在我们增加一个新的需求,我们某个页面需要一个用户列表,而不仅仅是一个单一的用户信息,那么这里就需要创建一个用户列表数组。
下面代码演示了使用JSON形式定义这个用户列表:
- [
- {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"http://www.hualai.net.cn"},
- {"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "http://www.hualaikj.com"},
- {"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"http://www.tjbusiness.com"}
- ]
完整代码:
- <script>
- var UserList = [
- {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"http://www.hualai.net.cn"},
- {"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "http://www.hualaikj.com"},
- {"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"http://www.tjbusiness.com"}
- ];
- alert(UserList[0].Name.FirstName);
- </script>
事实上除了使用"."引用属性外,我们还可以使用下面语句:
alert(UserList[0]["Name"]["FirstName"]); 或者 alert(UserList[0].Name["FirstName"]);
现在读者应该对JSON的使用有点认识了,归纳为以下几点:
对象是属性、值对的集合。一个对象的开始于“{”,结束于“}”。每一个属性名和值间用“:”提示,属性间用“,”分隔。
数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。
值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。
字符串和数字的定义和C或Java基本一致。
小节:
本文通过一个实例演示,初步了解了JSON 的强大用途。可以归结如下:
JSON 提供了一种优秀的面向对象的方法,以便将元数据缓存到客户机上。
JSON 帮助分离了验证数据和逻辑。
JSON 帮助为 Web 应用程序提供了 Ajax 的本质。
分享到:
相关推荐
JSON作为一种轻量级的数据交换格式,不仅因其简洁性和易读性而在软件开发领域内得到了广泛的应用,还因其强大的灵活性和兼容性而成为了许多现代技术的基础。无论是构建Web服务还是处理数据,JSON都是一个不可或缺的...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传输数据。它基于JavaScript的一个子集,格式清晰、易于阅读和编写,同时也易于机器解析和生成。JSON Editor则是一款专...
C++版轻量级JSON库 JsonLite是一个Json的C++实现,可以生成和解析JSON,除了依赖C/C++标准库 以外不依赖任何第三方库,可以移植到任何平台上。
**cpp-sajson:C++11的轻量级极高性能JSON解析库** cpp-sajson 是一个基于C++11标准的轻量级JSON解析器,它以其高性能和小巧的体积著称。JSON(JavaScript Object Notation)是一种常用的数据交换格式,广泛应用于...
JSON (JavaScript Object Notation) 是一种广泛用于数据交换的轻量级格式,尤其在Web服务和前后端交互中扮演着重要角色。它基于JavaScript语言的一个子集,因此在JavaScript环境中解析和生成JSON数据非常便捷。JSON...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于移动和嵌入式应用程序,因为它易于读写...在实际项目中,合理利用JSON和这样的轻量级库,可以提高开发效率,同时保持代码的可维护性和性能。
JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,广泛应用于网络通信和数据存储,因此能够有效地解析、查询和转换JSON数据对于开发人员来说至关重要。 cpp-jq项目基于开源的jq工具,jq是用C语言...
本主题聚焦于“Java Web轻量级开发全体验15”,这可能是指一系列教程或项目的第15个部分,重点是通过代码实践来学习和理解轻量级开发的关键概念。我们将探讨这一主题涉及的主要知识点。 1. **Servlet与JSP**:作为...
JSONCoder 是一个轻量级的通用的 Java 对象序列化和反序列化到 JSON 格式的工具包,类似 Jackson 或者 FastJson。这个库在 eBay 内部广泛使用多年。这并非是要替代其他常用库,主要是解决了一些其他库中不被支持的...
这是一个基于ThinkPHP的轻量级PHP开发框架设计,使用PHP语言开发,包含25个文件。主要文件类型包括10个PHP源文件、5个gitignore文件、2个Markdown文档、2个TXT文件、2个.htaccess文件、1个YAML文件、1个JSON文件和1...
TrivialDB是一个专门为JavaScript开发设计的轻量级键值对持久化存储解决方案,它专注于处理JSON格式的数据。这个数据库系统的核心理念是提供一个简洁、易用的接口,使得开发者能够方便地存储和检索以Key-Value形式...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。在C语言环境中,开发人员有时需要处理JSON数据,但C语言本身并不直接支持JSON解析和生成。因此,出现...
标题中的“autoit 轻量级请求BigQuant策略方法+JSON解析+落地\委托\DB”揭示了几个关键的IT知识点,主要集中在AutoIt编程语言、网络请求、JSON数据处理以及数据库操作上。 1. **AutoIt**: AutoIt是一种轻量级的、...
JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,它基于JavaScript的一个子集,但设计的目标是为了便于人阅读和编写,同时也方便机器解析和生成。JSON因其简洁、高效的特性,在网络通信中被广泛...
JSONRPC4J是一种基于Java实现的轻量级远程过程调用(RPC)框架,它允许客户端与服务器之间通过JSON协议进行通信。在这个场景中,我们将讨论如何将JSONRPC4J与Spring框架和Maven构建工具整合,以创建一个高效、灵活的...
【轻量级Java Web开发整合入门】 在Java Web开发领域,"轻量级"一词通常指的是不依赖大型企业级应用服务器(如IBM WebSphere或Oracle WebLogic)的框架和工具,它们更易于使用、部署和维护。轻量级Java Web开发强调...
最后,使用JSON来实现数据交换,JSON是一种轻量级的数据交换格式,能够满足测试模块的数据交换需求。 本文提供了一种轻量级实现的测试模块制作办法,旨在解决当前课程网站开发中测试模块开发的困难和挑战,满足业务...
该项目为轻量级Java Web开发框架设计源码,包含515个文件,主要采用Java编程语言,辅以Shell脚本,涵盖了480个Java源文件、12个XML配置文件、6个Markdown文档、5个属性文件、4个Shell脚本、4个JSON文件、1个Git忽略...