JSON是独立于语言存在的,在不同的编程语言中对这种数据类型的实现不同,例如在JavaScript中使用JavaScript对象对这种数据格式进行实现,那么在java中当然是用java对象实现。
描述JSON格式数据的语法采用了JS对象字面量的表示方法,所以描述JSON的语法是js对象字面量表示法语法的一个真子集。
JSON语法详情请看这里:https://www.cnblogs.com/daihu/p/9769348.html
1、js对象的字面量表示法与JSON语法的区别(后者是前者的真子集):
<script type="text/javascript">
// JSON语法中,名称(name)必须要用""(双引号)包裹起来。
// 这是一个js对象,属性不加"",符合js对象的字面量表示法语法但不符合JSON语法。
var jsObj1 = {
name : "张三"
}
// JSON语法中,值(value)可以是6种数据类型,并且这6种数据类型可以互相嵌套
// 值(value)可以是双引号括起来的字符串(string)、数值(number)、Boolean、 null、对象(object)或者数组(array)。
// 这是一个内部带有方法js对象,虽然属性加了"",但JSON的语法中属性的值不能是方法。
var jsObj2 = {
"name" : "张三",
"func" : function(){
alert("hello");
}
}
// 这是一个符合JSON数据格式的js对象,是JavaScript语言中对JSON这种数据格式的实现形式,也是我们常说的"JSON对象"。
// 这种JS对象字面量的表示方法,也就是"JSON对于其数据形式规范的语法",所以说"JSON的语法就是JS对象字面量表示法语法的一个子集"。
var jsonObj = {
"name" : "张三",
"age" : 10,
"remark" :{ "high" : 170 ,"address" : "beijinghaidian" }
}
</script>
我们知道,js对于变量的命名规则是数字、字母、下划线及$符号,属性不加引号时也符合这个规则,但要是属性中有这四种之外其它的符号如"[" 或者 "."等等,属性就必须引号来表示。
示例中的三个变量都是js对象,只是前两种不符合JSON语法。
2、js字符串的字面量表示法与JSON语法的区别(后者是前者的真子集):
// 下面是js中符合JSON格式的字符串
// js字符串用""(双引号)括起来
// 其他的""(双引号)全部使用"\"(反斜杠)转义
var JSONStr1 = "{\"name\" : \"张三\"}"; // 下面的字符串不符合JSON格式,它只是一个js字符串
// 名称(name)没有使用""(双引号)括起来
var JSONStr2 = "{'name' : '张三'}";
JSON语法对字符串的定义:是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
JSON独立于语言而存在,任何站在语言的角度及对象层面对他的解释都是有局限性或者是错误的。
参考文章:
https://www.cnblogs.com/cdf-opensource-007/p/6380472.html
JSON语法与JavaScript语法的区别的更多相关文章
-
JSON对象与JavaScript对象的区别
//js对象的字面量表示法: var people1={ name:'hehe', age:18 }; //json的格式是: var people1={ "name":'hehe ...
-
JSON【介绍、语法、解析JSON】
什么是JSON JSON:JavaScript Object Notation [JavaScript 对象表示法] JSON 是存储和交换文本信息的语法.类似 XML. JSON采用完全独立于任何程 ...
-
JSON字符串和Javascript对象字面量
JSON字符串和Javascript对象字面量 JSON是基于Javascript语法的一个子集而创建的,特别是对象和数组字面量语法. 正是由于JSON的这种特殊来历,导致很多Javascript程序 ...
-
JOSN学习总结<;二>; JSON的格式与语法
今晚又下班早!!嘿嘿,继续JOSN的总结吧!!!!有人说这么简单还有必要写吗???我觉得“眼里过十遍不如手里过一遍”!!有错误之处请指正!!共同学习下!!!!废话不说了,进入今晚的正题: <二& ...
-
When Colon Scripting is comming(JavaScript语法扩充)
当冒号脚本来临-- JavaScript语法扩充 连续好几夜的不能安眠,得出结论就是,未来语言未来的编译器应该是支持语法定制规则和语法扩展的,这样使得编程语言不断进化以更利于人类使用!of cours ...
-
Javascript语法基础
Javascript语法基础 一.基本数据类型 JavaScript中支持数字.字符串和布尔值三种基本数据类型: 1.数字 数字型是JavaScript中的基本数据类型.在JavaScript ...
-
第九十八节,JavaScript语法、关键保留字及变量
JavaScript语法.关键保留字及变量 学习要点: 1.语法构成 2.关键字保留字 3.变量 任何语言的核心都必然会描述这门语言最基本的工作原理.而JavaScript的语言核心就是ECMAScr ...
-
JavaScript DOM 编程艺术(1)--->; JavaScript语法
一. JavaScript语法目录 语法 操作 条件语句 循环语句 函数 对象 二. 具体内容 2.1 语法 javaScript代码要通过HTML/XHTML文档才能执行.可以有两种方式完成这一 ...
-
JavaScript语法详解:JS简介&;变量
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. JavaScript简介 Web前端有三层: HTML:从语义的角度,描 ...
随机推荐
-
MyBatis源码分析(2)—— Plugin原理
@(MyBatis)[Plugin] MyBatis源码分析--Plugin原理 Plugin原理 Plugin的实现采用了Java的动态代理,应用了责任链设计模式 InterceptorChain ...
-
【leetcode】Surrounded Regions(middle)☆
Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'. A region is captured ...
-
jquery替换URL参数值
由于经常会用到替换URL参数值,而网上写的方法代码都太长了,所以在这里写了一个简单的方法,供大家使用. 说明: reLoad(参数名,参数值) function reLoad(p, v) { var ...
-
SQL Server 2008中删除errorlog文件的方法
删除error咯个文件[SSQL\MSSQL10.MSSQLSERVER\MSSQL\Log目录下面] 由于默认情况下,SQL Server 保存 7 个 ErrorLog 文件,名为: ErrorL ...
-
如果你遇到,在IntelliJ IDEA里Ctrl+Alt+方向键用不了
在idea中使用ctrl+b跟踪进入函数之后,每次返回都不知道用什么快捷键,在idea中使用ctrl+alt+方向键首先会出现与win7屏幕方向的快捷键冲突,右键桌面,选择图形属性,将win7的快捷键 ...
-
Unity3D开发Windows Store应用程序 注意事项
原地址:http://blog.csdn.net/jbjwpzyl3611421/article/details/12704491 针对最近在移植window store项目中遇到的问题,我整理了官方 ...
-
Android ServiceConnection类的onServiceDisconnected(ComponentName name)在什么时候执行
ServiceConnection类中的两个方法非别在服务连接成功时.不成功时调用.其中onServiceDisconnected()方法在连接正常关闭的情况下是不会被调用的, 该方法只在Servic ...
-
SQL Server学习之路(三):“增删改查”之“增”
0.目录 1.前言 2.通过SSMS添加数据 3.通过SQL语句添加数据 3.1 添加单条数据 3.2 添加多条数据 4.通过其他表导入数据 4.1 通过数据库中的其他表导入数据 4.2 通过exce ...
-
bootstrap 列表--水平定义列表
水平定义列表就像内联列表一样,Bootstrap可以给<dl>添加类名“.dl-horizontal”给定义列表实现水平显示效果. @media (min-width: 768px) { ...
-
python- Socket &; Mysql 重要知识点
socket : 解决粘包 并发编程 生产者消费者模型 进程池和线程池 回调函数 GIL全局解释器锁(理论) ...