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 username 用户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数据格式介绍相关推荐

  1. json数据格式了解

    json数据格式介绍: https://en.wikipedia.org/wiki/JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式 json语法 ...

  2. JSON 数据格式解析(转)

    JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.本文将快速讲解 JSON 格式,并通过代码示例演示如 ...

  3. 将html代码确析成json数据格式,JSON字符串解析成JSON数据格式

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  4. JSON数据格式解析库(cJSON、Jansson)的使用在STM32上移植和使用

    json | json-c使用入门 这篇讲的也不错,抽空看下(网络传输json数据) https://www.bilibili.com/video/av669454528?p=3&spm_id ...

  5. SpringBoot入门系列(二)如何返回统一的Json数据格式

    前面介绍了Spring Boot的优点,然后介绍了如何快速创建Spring Boot 项目.不清楚的朋友可以看看之前的文章: https://www.cnblogs.com/zhangweizhong ...

  6. Java 常见JSON框架介绍

    JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.其简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言,同时也易于机器解析和生成, ...

  7. java 蓝牙读取数据格式,单片机与安卓手机通过蓝牙串口模块利用JSON数据格式通信实例...

    原标题:单片机与安卓手机通过蓝牙串口模块利用JSON数据格式通信实例 JSON 指的是 Java 对象表示法(Java Object Notation),JSON 是轻量级的文本数据交换格式,JSON ...

  8. Json数据格式的使用

    Json数据格式的使用 一.概念介绍 二.语法介绍 1. 基本定义规则 2. 获取数据 3. JSON数据和Java对象的相互转换 I.Java对象转换JSON II.JSON转为Java对象 4.使 ...

  9. AJAX——JSON数据格式

    JSON数据格式,前段时间一直听他们合作的说,但是不知道是什么,这次终于明白了,其实就是一种类似于XML的数据传输格式.下边我从定义,语法,转换为JavaScript对象以及与XML的比较四个方面介绍 ...

最新文章

  1. 使用maven profile 构建不同环境引用不同的值
  2. 【Java Web开发指南】Spring一些基础问题整理
  3. 区块链BaaS云服务(29) 溪塔科技 CITA-Cloud
  4. 编码,charset,乱码,unicode,utf-8与net简单释义
  5. 正在搞用web.py做的通讯录
  6. 如何在html指定css,如何在LESS CSS嵌套类上指定html标记?
  7. matlab求解方程2x的5次,5元二次方程求解
  8. 2021年茶艺师(初级)考试总结及茶艺师(初级)作业考试题库
  9. 一个合适的交换机高清视频监控网络
  10. 一个关于jboss Halting VM的情况处理
  11. HTTP、HTTPS
  12. linux动态链接库全局变量共享问题DLL共享数据段
  13. 如何分析关键词的优化难度?
  14. Chicken first or egg?
  15. 计算机考研1000题pdf,2020考研张宇1000题(数一、二、三全).pdf
  16. 百度地图经纬度转腾讯/高德
  17. python数据建模案例源代码_一个完整的数据分析案例 | 用Python建立客户流失预测模型(含源数据+代码)...
  18. [ LeetCode ] #17. Letter Combinations of a Phone Number(电话按键组合字符 C++ Python)
  19. GNSS/INS组合导航笔记
  20. FTP的PORT和PASV的连接方式以及数据连接端口号计算

热门文章

  1. 中国AI产业背后的富士康工人:拿低工资为硅谷巨头的数据贴标
  2. 对抗神经网络GAN到底学到了什么
  3. 2018机器学习和AI最大突破没找到,但有人发现了最大障碍!
  4. latex如何清除表格table的浮动位置(表格自动上移)
  5. 【AI-CPS】【工业互联网】从观望到行动:全球工业物联网市场生态全景观察
  6. 3 : 1,从21世纪科技趋势分析美国为什么一定要遏制华为
  7. 动图|帮你一次性搞清楚 40种传感器工作原理
  8. 挑战权威还是偏离主流?颠覆性研究或将证明神经信号是机械波
  9. 全球最权威的区块链行业报告
  10. 类脑信息处理研究取得进展