JSON定义
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集。 JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式。
JSON的结构基于下面两点
•1. "名称/值"对的集合 不同语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list)等
•2. 值的有序列表 多数语言中被理解为数组(array)
JSON使用:
JSON以一种特定的字符串形式来表示 JavaScript 对象。如果将具有这样一种形式的字符串赋给任意一个 JavaScript 变量,那么该变量会变成一个对象引用,而这个对象就是字符串所构建出来的,好像有点拗口,我们还是用实例来说明。
这里假设我们需要创建一个User对象,并具有以下属性
•用户ID
•用户名
•用户Email
您可以使用以下JSON形式来表示User对象:
{"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"};
然后如果把这一字符串赋予一个JavaScript变量,那么就可以直接使用对象的任一属性了。
完整代码:
<script>var User = {"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"}; alert(User.Name); </script>
实际使用时可能更复杂一点,比如我们为Name定义更详细的结构,使它具有FirstName和LastName:
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"}
完整代码:
<script>var User = {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"}; alert(User.Name.FirstName); </script>
现在我们增加一个新的需求,我们某个页面需要一个用户列表,而不仅仅是一个单一的用户信息,那么这里就需要创建一个用户列表数组。
下面代码演示了使用JSON形式定义这个用户列表:
[ {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"}, {"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "Email":"xxx◎xxx.com"}, {"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"xxx2◎xxx2.com"} ]
完整代码:
<script> var UserList = [ {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"}, {"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "Email":"xxx◎xxx.com"}, {"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"xxx2◎xxx2.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 的本质。
参考资料:
http://www.json.org/
分享到:
相关推荐
通过该示例代码,可以实现客户端和服务器端之间的数据交互,並使用 JSON 数据格式来传递数据。该方法可以广泛应用于 Web 开发中,以实现异步数据交互和数据传递。 知识点总结: 1. 使用 $.ajax 对象实现异步数据...
JSON数据格式化.exe可执行工具就是针对这种数据格式专门设计的,用于帮助开发者更方便地查看、理解和处理JSON格式的数据。 该工具的主要功能可能包括: 1. **格式化显示**:将原始的、未经格式化的JSON字符串转换...
而Newtonsoft.Json.dll是.NET平台上最流行的JSON库,由James Newton-King 开发,它提供了丰富的API用于JSON序列化和反序列化,极大地简化了开发者处理JSON数据的工作。 Newtonsoft.Json.dll 4.5.0.0版本是该库的一...
xml文件转json数据格式返回.md
当你在项目中引入这个JAR包,就可以直接调用其提供的类和方法来处理JSON数据。例如,你可以使用`JSONArray`、`JSONObject`等类进行JSON的创建、解析和操作。 总的来说,`net.sf.json`库是Java开发中处理JSON数据的...
本文将深入探讨“最新中国地图js&json数据文件.zip”这个压缩包中所包含的知识点,以及如何在前端开发和Echarts图表库中使用这些资源。 首先,我们要了解的是`js`和`json`这两种文件格式。JavaScript(js)是一种...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在三维模型中,JSON常用于存储模型的几何数据、材质信息、动画帧等。Three.js支持加载JSON格式的模型...
在Unity中,我们可能需要将游戏对象的状态或用户数据保存为JSON格式,或者从服务器接收JSON数据来更新游戏状态。JsonNet提供了一套简单直观的API,使得开发者可以轻松地将C#对象转换为JSON字符串,或者将JSON字符串...
在这个“JSON数据交换格式练习”中,我们将会探讨如何在Python中处理JSON数据,特别是与爬虫相关的应用。 首先,让我们来理解一下爬虫。爬虫是自动抓取互联网信息的程序,它们通过模拟浏览器的行为,请求网页并解析...
本压缩包“Revit导出JSON数据源代码.zip”提供了一个名为“CustomExporterAdnMeshJson-2017.0.0.0”的程序,该程序能够帮助Revit用户将模型数据导出为JSON格式,这是一种轻量级的数据交换格式,易于人阅读和编写,...
在ECharts中,地图数据通常是以 JSON 格式存储的,以便能够动态加载和展示地图数据。`world.json` 就是这样一份用于绘制世界地图的数据文件。 `world.json` 文件包含了世界各国家和地区的地理坐标信息,这些信息...
省份数据 provinces.json 城市数据 cities.json 区县数据 areas.json 乡镇(街道)数据 streets.json “省份、城市” 二级联动数据 pc.json “省份、城市” 二级联动数据(带编码) pc-code.json “省份、城市、区县...
Newtonsoft.Json.Compact 3.5.0.8通过其小巧的体积和高效的性能,解决了在WinCE环境下处理JSON数据的难题。此外,它还保持了与标准.NET框架中Newtonsoft.Json的兼容性,降低了开发者的学习成本和迁移难度。 这个...
标题“VC++读取json格式数据.rar.rar”表明这是一个关于使用C++在Visual C++(VC++)环境下解析和操作JSON数据的资源包。资源包中包含了一个名为“626.pptx”的演示文稿和一个名为“VC++读取json格式数据.rar”的...
1Python 3 介绍(二十五)--Python3 JSON 数据解析介绍.docx
省份数据 provinces.json 城市数据 cities.json 区县数据 areas.json 乡镇(街道)数据 streets.json “省份、城市” 二级联动数据 pc.json “省份、城市” 二级联动数据(带编码) pc-code.json “省份、城市、区县...
3. **JSONParser**:这是解析JSON数据的主要工具类,它提供了`parse()`方法,可以从JSON格式的字符串或输入流中解析出JSON对象或数组。 4. **JSONStringer** 和 **JSONWriter**:这两个类用于生成JSON格式的字符串...
JSON数据格式.ppt
在嵌入式开发领域,尤其是在使用像KEIL这样的微控制器开发工具时,处理JSON数据的需求同样重要。KEIL是一款由ARM公司开发的集成开发环境(IDE),主要面向MCU(微控制器单元)编程,它提供了C编译器、调试器和其他...