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 ...
随机推荐
- 什么是KMP算法?KMP算法推导
花了大概3天时间,了解,理解,推理KMP算法,这里做一次总结!希望能给看到的人带来帮助!! 1.什么是KMP算法? 在主串Str中查找模式串Pattern的方法中,有一种方式叫KMP算法 KMP算法是 ...
- Mego开发文档 - 加载关系数据
加载关系数据 Mego允许您使用模型中的导航属性来加载相关数据对象.目前只支持强制加载数据对象.只有正确配置了关系才能加载关系数据,相关内容可参考关系配置文档. 加载对象属性 您可以使用该Includ ...
- Swagger: 一个restful接口文档在线生成+功能测试软件
一.什么是 Swagger? Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 ...
- Spring Cloud的DataRest(二)
一.创建工程 1.主程序 2.依赖 3.配置 二.案例开发 1.entity 2.repository 三.案例验证 安装postman4.13,启动应用,执行如下案例验证! 1.create - p ...
- Python之面向对象一
引子 小游戏:人狗大战 角色:人和狗 角色属性:姓名,血量,战斗力和性别(种类) 技能:打/咬 用函数实现人打狗和狗咬人的情形 def Dog(name,blood,aggr,kind): dog = ...
- Python入门之三元表达式\列表推导式\生成器表达式\递归匿名函数\内置函数
本章目录: 一.三元表达式.列表推导式.生成器表达式 二.递归调用和二分法 三.匿名函数 四.内置函数 ================================================ ...
- 初学Java Web(4)——Servlet学习总结
经过一段时间的学习,对于Servlet有了新的不一样的见解,在这里做一下总结,将近来学习到的知识总结一下. Servlet 的请求流程 浏览器发出请求:http://localhost:80/xxx1 ...
- apache修改最大连接数报错
报错的内容: AH00180: WARNING: MaxRequestWorkers of 2500 exceeds ServerLimit value of 256 servers, decreas ...
- Python 爬虫性能相关
性能相关 在编写爬虫时,性能的消耗主要在IO请求中,当单进程单线程模式下请求URL时必然会引起等待,从而使得请求整体变慢. import requests def fetch_async(url): ...
- hdu 6095 Rikka with Competition---思维题贪心
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6095 题目大意: 任意两个人相比,相差大于K,分低的淘汰,否则两人都有可能赢,剩下的继续比,问有最多 ...