JavaScript 对象和 JSON 的区别
参考原文:https://blog.csdn.net/jiaojiao772992/article/details/77871785/
2.1 对象和 JSON 的区别
JSON 就是 JavaScript object notation ,JS对象表示法,是JS对象的严格子集。
区别就是引号:JSON要求所有的属性名(键)必须加 双引号“”,而JS对象实际上不要求双引号。
这就是一个标准JSON:

实际上不需要加引号也是合法的:

为什么JSON规定要加上双引号呢?
这是因为JSON是一个数据交换格式,它可以负责和PHP通信,它是HTML和PHP等等后台语言的信息交换媒介。PHP工程师可以从数据库中得到数据,组建JSON,前台通过Ajax拿到这个JSON之后,解析JSON,组建页面。
比如下图:

所以是其他语言要求JSON有引号,否则报错,不是JS要求的。JSON天生为通信而生!
但是有一种键必须加引号!就是不符合标识符命名规范的键,必须加引号,否则报错!
标识符命名规范:可以是字母、数字、下划线,但是不能以数字开头
下面是符合标识符命名规范的:

下面是不符合标识符命名规范的,必须加引号:

访问属性的时候,必须也加上引号,用方括号表示法。
特别的,如果我们用变量存储一个key,此时必须用方括号枚举,并且方括号中不能有引号:
比如小题目,alert出什么?

实际读取的是obj["2016"] //就是14,
如果alert(obj["key"]) //888,
如果alert (obj.key) //888 ,点语法只能以字符串形式访问对象中的键,key此时不是变量。
所以方括号语法相比点语法更为灵活。
JavaScript 对象和 JSON 的区别的更多相关文章
- JavaScript对象、JSON对象、JSON字符串的区别
一.首先看下什么是JSON JSON:JavaScript Object Natation,JavaScript对象的表现形式,已经发展成一种轻量级的数据交换格式. JavaScript对象的表现形式 ...
- 使用Javascript/jQuery将javascript对象转换为json格式数据 - 海涛的CSDN博客 - 博客频道 - CSDN.NET
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- JSON对象和JavaScript对象直接量的区别--不同之处
JSON对象和JS对象直接量 在工作当中,我们总是可以听到人说将数据转换为JSON对象,或者说把JSON对象转换为字符串之类的话,下面是关于JSON的具体说明. JSON对象并不是JavaScript ...
- JavaScript对象与JSON字符串的相互转换
JSON(JavaScript Object Notation) 是JavaScript编程语言的一个子集.正因JSON是JavaScript的一个子集,所以它可清晰的运用于此语言中. eval函数 ...
- Razor 将C#对象转换成Javascript对象, json还原被转码的字符 "·· HTML转义符
Razor 将C#对象转换成Javascript对象 在Razor中使用Json字符串,特殊字符被自动转义(如:\"->") @{ var jsonStr = Html.Ra ...
- [JS]Javascript对象与JSON的互转
var obj = JSON.parse(json); //由JSON字符串转换为JSON对象 var json=JSON.stringify(obj); //将JSON对象转化为JSON字符 //此 ...
- net.sf.json和 com.fasterxml.jackson中对象转json的区别
近期做项目的时候,发现使用net.sf.json包中的JSONObject或JSONArray将对象转为json数据结构存在一个坑.当对String类型的属性赋值为null情况下,转为json结构为& ...
- javascript函数,构造函数。js对象和json的区别。js中this指向问题
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块.好处:在出现大量程序相同的时候,可以封装为一个function,这样只用调用一次,就能执行很多语句.(1)语法:函数就是包裹在花括号中的代码 ...
- javaScript对象与JSON.stringfly(obj)
//接收json对象 var objJson = new Object(); var arr = new Array(); var obj1 = new Object(); obj1.age = 15 ...
- js对象和json的区别
他们两个没有什么关联只不过可以相互转换而已,就像json可以转化为java对象一样 注意:json只有字符串形式(就是我们常说的json字符串:key/value值和数组形式的字符串),没有什么jso ...
随机推荐
- Scrapy-settings.py常规配置
# Scrapy settings for scrapy_demo project # # For simplicity, this file contains only settings consi ...
- pytest框架中conftest.py的作用
conftest.py 是 pytest 框架中的一个特殊文件.它允许你为测试提供自定义的配置和钩子函数.以下是 conftest.py 的主要作用: 提供全局配置:你可以在 conftest.py ...
- Python——第二章:字符串操作——索引和切片
索引: 按照位置提取元素 可以采用索引的方式来提取某一个字符(文字) s = "我叫周杰伦" print(s[3]) #程序员都是从0开始数,这里的3代表第4位,也就是" ...
- Python——第二章:字符串操作——格式化
1. 字符串的格式化问题 举例:要按照如下格式输出一句话 我叫xxx, 我住在xxxx, 我今年xx岁, 我喜欢做xxxxx 这里首先引入占位符概念: %s 占位字符串%d 占位整数%f 占位小数 因 ...
- VisionPro学习笔记(6)——如何使用QuickBuild
如果需要了解其他图像处理的文章,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice ...
- mysql将查询结果生成临时表
MySQL中将查询的结果生成临时表,列类型与查询的列一致,百度搜索到的没啥用. 直接上SQL: 将结果生成临时表 create temporary table temp_tb_name as (sel ...
- STM32CubeMX教程10 RTC 实时时钟 - 周期唤醒、闹钟A/B事件和备份寄存器
本实验主要使用STM32CubeMX软件配置STM32F407开发板实现RTC周期唤醒.闹钟A/B事件功能,周期唤醒中输出RTC时间,闹钟A/B事件发生时利用串口输出闹钟A/B事件发生提示 1.准备材 ...
- 数据交换不失控:华为云EDS,让你的数据你做主
摘要:华为云EDS在"可信.可控.可证"的框架基础上进行数据空间的关键设计,打造数据可控交换的全栈能力. 数字社会,每时每刻都有海量数据产生,数据也逐渐从生产过程的附属产物,逐渐成 ...
- 浅谈DWS函数出参方式
摘要:DWS的PL/pgSQL函数/存储过程中有一个特殊的语法PERFORM语法,用于执行语句但是丢弃执行结果的场景,常用于一些状态判断的场景. 本文分享自华为云社区<GassDB(DWS)功能 ...
- 华为云FusionInsight MRS在金融行业存算分离的实践
摘要:华为云FusionInsight MRS的大数据存算分离解决方案,实现资源价值最大化,存储与计算资源全面云化.灵活配置.弹性伸缩,降本增效. 在大数据.云计算.5G.AI等技术日新月异,数字经济 ...