基于JSON数据格式详解


Posted in Javascript onAugust 31, 2017

JSON是行业内使用最为广泛的数据交换格式,在很多场景都有广泛的应用。JSON适用于进行数据交互的场景,典型的是Ajax中实现异步加载;为了支持跨平台、数据安全等的Web Service也可以使用(API接口返回值)。

JSON(JavaScript Object Notation)是一种完全独立于语言的、轻量级的数据交换格式。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON的官方MIME类型是application/json,文件扩展名是 .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具有以下这些形式:

Object是一个无序的“‘名称/值'对”集合。一个对象以“{”开始,“}”结束。每个“名称”后跟一个“:”(冒号);“‘名称/值' 对”之间使用“,”分隔。

Array是值(value)的有序集合。一个数组以“[”开始,“]”结束。值之间使用“,”分隔。

值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。

基本类型:

string、number、 true、false、 null。

字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。

JSON实例

{
 "name":"Python学习者",
 "age":20,
 "course":["Java","Python"],
 "job":null,
 "url":"https://3water.com"
}

JavaScript

<html>
<head>
 <meta charset="utf-8">
 <title>Pyhton学习者-JSON</title>
</head>
<body>
 <p>使用" . "访问JSON对象</p>
 <p id="demo1"></p>
 <p>使用" [] "访问JSON对象</p>
 <p id="demo2"></p>

<script>
 var obj, name, age;
 obj =  {
  "name":"Python学习者",
  "age":20,
  "course":["Java","Python"],
  "job":null,
  "url":"https://3water.com"
 }
 name = obj.name;
 document.getElementById("demo1").innerHTML = name;
 age = obj["age"];
 document.getElementById("demo2").innerHTML = age;
</script>

</body>
</html>

MongoDB

MongoDB是一种常用的NoSQL数据库,它所有的信息都是按照文档保存的,保存的结构就是JSON结构。

db.students.insert({"name" : "张三" , "sex" : "男" , "age" : 18 , "score" : 85 });
db.students.insert({"name" : "李四" , "sex" : "女" , "age" : 21 , "score" : 93 });
db.students.insert({"name" : "王五" , "sex" : "女" , "age" : 19 , "score" : 68 });
db.students.find("name":"张三");

其实JSON结构并不难理解,需要注意的是"key/value"中,key是string类型,要使用 ""(双引号)。

参考资料:

在线代码格式化:http://tool.oschina.net/codeformat/json

JSON官方网站:http://www.json.org/

以上这篇基于JSON数据格式详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用js统计用户下载网页所需时间的脚本
Oct 15 Javascript
理解Javascript_09_Function与Object
Oct 16 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
Jan 15 Javascript
javascipt匹配单行和多行注释的正则表达式
Nov 20 Javascript
javascript操作符&quot;!~&quot;详解
Feb 10 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
Mar 03 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
Jul 01 Javascript
Vue 仿百度搜索功能实现代码
Feb 16 Javascript
JavaScript运动框架 多值运动(四)
May 18 Javascript
angular中实现li或者某个元素点击变色的两种方法
Jul 27 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
Aug 04 Javascript
Mongoose实现虚拟字段查询的方法详解
Aug 15 Javascript
浅谈js中的this问题
Aug 31 #Javascript
js实现图片放大展示效果
Aug 30 #Javascript
详解js几个绕不开的事件兼容写法
Aug 30 #Javascript
JavaScript实现滑动导航栏效果
Aug 30 #Javascript
详解vue-cli 构建Vue项目遇到的坑
Aug 30 #Javascript
前端开发不得不知的10个最佳ES6特性
Aug 30 #Javascript
vue.js的手脚架vue-cli项目搭建的步骤
Aug 30 #Javascript
You might like
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
php给数组赋值的实例方法
2019/09/26 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
JavaScript类和继承 constructor属性
2010/03/04 Javascript
使用jquery mobile做幻灯播放效果实现步骤
2013/01/04 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
Bootstrap前端开发案例一
2016/06/17 Javascript
详解handlebars+require基本使用方法
2016/12/21 Javascript
jQuery插件zTree实现删除树节点的方法示例
2017/03/08 Javascript
Vue form 表单提交+ajax异步请求+分页效果
2017/04/22 Javascript
详解vue2父组件传递props异步数据到子组件的问题
2017/06/29 Javascript
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
关于Vue项目跨平台运行问题的解决方法
2018/09/18 Javascript
vue组件间的参数传递实例详解
2019/04/26 Javascript
angular多语言配置详解
2019/05/16 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
python每天定时运行某程序代码
2019/08/16 Python
Python实现RabbitMQ6种消息模型的示例代码
2020/03/30 Python
如何完美的建立一个python项目
2020/10/09 Python
欧舒丹美国官网:L’Occitane美国
2018/02/23 全球购物
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
2014年党员创先争优承诺书
2014/05/29 职场文书
暑假打工感想
2015/08/07 职场文书
《认识年月日》教学反思
2016/02/19 职场文书
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS