JSON概述
概念区分:
1.JSON:(JavaScript Object Notation,js对象表示法);
2.JSON是为了数据交换设计的一种数据格式,而不是一种编程语言、有两个API、是一个JS对象;
3.JSON与js具有相同的语法格式,但是JSON并不从属于js;JSON 与 JS 的联系在于 JSON 使用了相同的语言层面表示,就是说你用 JS 写一个对象,与转换成的 JSON 字符串是相同的;
4.并非只有js才使用JSON,很多编程语言都有针对JSON的解析器和序列化器;
5.JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值;
6.JS 中 JSON 的两个转化方法分别是JSON.stringify和JSON.parse。
语法:
JSON的语法可以表示以下三种类型的值:
- 1.简单值;
- 2.对象;
- 3.数组。
举例说明:
1.简单值:
5//这是JSON表示数值5的方式; "Hello world"//JSON表示字符串的过程
区别:
1)js字符串与JSON字符串的最大区别:JSON字符串必须使用双引号(单引号会导致语法错误);
2)布尔值与null也是有效的JSON形式。
2.对象:
①js中的对象字面量(是不是自己内心想象的JSON对象?key:value形式,Wrong!)
var person = { name:"王五", age:22 }
②JSON中的对象要求给属性加引号:
所以上面的的对象字面量又可以这样表示:
var person = {
"name":"王五",
"age":22};
JSON表示上述对象的方式如下:
{
"name":"王五",
"age":22
}
对比一下,有区别吗?
1.JSON中没有变量的概念,故并没有声明变量;
2.末尾没有分号。
谨记:对象的属性必须加双引号。
3.数组:
JSON数组采用JS中的数组字面量形式。
var values = [25,"hello",true];//js中的数组字面量
[25,"hello",true] //JSON中的数组表示
果然,JSON数组中既没有变量也没有分号。
解析与序列化
1.JSON.stringify();
2.JSON.parse();
3.toJSON.
是不是耳熟能详的方法?还好有机会重温一下,也好改正自己的短处:
1.JSON对象有两个方法:stringify()以及parse(),其实就是把js对象序列化为JSON字符串和把JSON字符串解析为原生js值。默认情况下,JSON.stringify()输出的JSON字符串不包含任何的空格字符串或缩进;
2.当JSON.stringify()
接受一个参数的时候(上述情景),JSON就是把js对象序列化为JSON字符串;
当JSON.stringify()接受两个参数,且第二个参数为数组的时候,代表结果中只包含数组中列出的属性;而当第二个参数为函数时,情况稍微有点不一样,函数返回的值就是相应键的值。不过,当函数返回undefined,那么相应的属性会被忽略即被删除;
当其接受三个参数的时候,第三个参数用于控制结果中的缩进和空白符。
小结:
JSON是一个轻量级的数据格式,可以简化表示复杂数据结构的工具量。
JSON vs js:JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。
《JavaScript高级程序设计》:563-570页。
JSON概述的更多相关文章
- Newtonsoft.Json 概述
有时候,在前后台数据交互或者APP与后台交互的时候,我们通常会使用Json进行数据交互,为此会使用到Newtonsoft.Json.dll 这个类库,这个类库非微软官方,但是下载量已经超过了数十万次, ...
- Json概述以及python对json的相关操作
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Langu ...
- Json概述以及python对json的相关操作(转)
什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programm ...
- Json概述以及python对json的相关操作《转》
什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programm ...
- json概述及python处理json等数据类型
<一,概念> 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON.XML等.反序列化(deserialization): ...
- JSON概述及其在JavaScript与Java中的应用(整理)
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成. 官网:http://json.org/ ...
- DataTable 转换成 Json的3种方法
在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>.DataTable转换为Json格式.特别在使用Extjs框架的时候,A ...
- python 解析json loads dumps
认识 引用模块 重要函数 案例 排序 缩进参数 压缩 参考 认识 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standa ...
- python 操作json
认识 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - Dece ...
随机推荐
- 微信qq,新浪等第三方授权登录的理解
偶们常说的第三方是指的微信,qq,新浪这些第三方,因为现在基本每个人都有qq或者微信,那么我们就可以通过这些第三方进行登录.而这些网站比如慕课网是通过第三方获取用户的基本信息 它会有个勾选按钮,提示是 ...
- python 判断变量是否是 None 的三种写法
代码中经常会有变量是否为None的判断,有三种主要的写法:第一种是`if x is None`:第二种是 `if not x:`:第三种是`if not x is None`(这句这样理解更清晰`if ...
- windows7.0旗舰版安装后控制面板自带的Microsoft程序
1.不要卸载,否则会出现安装其他软件时缺少动态链接库
- 浅显易懂的谈一谈python中的装饰器!!
hello大家好~~我是稀里糊涂林老冷,一天天稀里糊涂的. 前一段时间学习了装饰器,觉着这东西好高大上哇靠!!哈哈,一定要总结一下,方便以后自己查阅,也希望帮助其他伙伴们共同进步! 装饰器: 大家可以 ...
- linux系统下Apache日志分割(按天生成文件)
Apache日志按天显示,修改Apache http.conf文件,注释默认的日志文件,修改为下面2行 ErrorLog "| /usr/local/apache/bin/rotatelog ...
- scrapy-redis使用以及剖析
scrapy-redis是一个基于redis的scrapy组件,通过它可以快速实现简单分布式爬虫程序,该组件本质上提供了三大功能: scheduler - 调度器 dupefilter - URL去重 ...
- POJ-3268 Silver Cow Party---正向+反向Dijkstra
题目链接: https://vjudge.net/problem/POJ-3268 题目大意: 有编号为1-N的牛,它们之间存在一些单向的路径.给定一头牛的编号X,其他牛要去拜访它并且拜访完之后要返回 ...
- linux系统环境与文件权限
默认有6个命令交互通道和一个图形界面交互通道,默认进入到的是图形界面通道 命令交互模式切换:ctrl+alt+f1---f6 图形交互界面 ctrl+alt+f7 1.图形界面交互模式 - termi ...
- [js]关于call()和apply()的理解
call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向. 因为 JavaScript 的函数存在「定义时上下文」和 ...
- JavaScript高级程序设计(第3版)
准备开始分享阅读笔记 自己收获的同时 让更多的人收益 这也是我力荐的学习javascript基础的书籍